setuptools setup_requires и install_requires ведут себя по-разному - PullRequest
0 голосов
/ 02 июля 2019

Мой пакет 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 при сборке пакетов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...