Мой пакет Python требует numpy во время сборки для компиляции расширений Cython. Выполнение python setup.py install
завершится ошибкой, если в среде недоступен numpy.
Я прочитал в Интернете, что я могу добавить секцию setup_requires
в мой вызов функции установки setup.py
, чтобы это работало. Итак, я сделал следующее:
setup(
setup_requires=[
"setuptools>=18.0",
"numpy>1.14",
],
install_requires=[
"numpy>1.14",
...
],
)
Однако, когда я делаю это, мой travis CI не работает с
ValueError: размер numpy.ufunc изменен, может указывать на двоичную несовместимость. Ожидаемый 216 от заголовка C, полученный 192 от PyObject
Однако, если я гарантирую, что numpy доступен, и удаляю раздел setup_requires
, это работает.
Меня смущает это поведение, кажется, что оно использует две разные версии numpy? Я не могу представить, что еще может вызвать эту несовместимость.
Мой вопрос: 1. почему это не работает, и 2. что же является каноническим способом обеспечения установки numpy при сборке пакетов.