Создание колес Python для библиотек типа numpy

В настоящее время у нас работает собственный частный сервер PyPi и загружаются колеса наших внутренних библиотек Python для ускорения установки.

Многие из наших инструментов требуют numpy, scipy, pandas и т. Д.

Мы создали колеса для всех наших зависимостей, установив все наши зависимости из источника, а затем используя

pip wheel .

который выводит колеса для всех наших зависимостей - или так мы думали.

Мы обнаружили, что при установке, скажем, numpy из нашего частного PyPi, где он доступен в виде колеса, происходит следующее.

>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "redacted/lib/python2.7/site-packages/numpy/__init__.py", line 199, in <module>
    from . import random
  File "redacted/site-packages/numpy/random/__init__.py", line 99, in <module>
    from .mtrand import *
ImportError: redacted/lib/python2.7/site-packages/numpy/random/mtrand.so: undefined symbol: PyFPE_jbuf

Мне ясно, что эти колеса не были созданы должным образом. Что мне не понятно, так это как это исправить. Мы не распространяем их среди общественности, только для наших внутренних инструментов.

1 ответ

Я далек от того, чтобы быть экспертом по упаковке колес, но вот что я знаю о производстве колес.

Для OS X и Windows вы можете собрать двоичные диски и использовать их для развертывания программного обеспечения.

В Linux этот процесс не всегда работает, и это потому, что многие двоичные диски будут пытаться использовать определенные версии библиотек ОС (.so), и они отличаются от одного дистрибутива к другому или даже внутри одного и того же дистрибутива.

Вот еще одна ссылка:

Другие вопросы по тегам