Требование установки Numpy для пакета не выполняется при установке pip из PyPI, но не из .whl

Недавно я собрал свой первый пакет Python и попытался протестировать дистрибутив с помощью test.pypi.org (Репозиторий GithubТест PyPI)

Код для построения dist:

python setup.py sdist bdist_wheel

Код для загрузки в Test PyPI:

twine upload --repository testpypi dist/*

Затем я создал и очистил среду conda для проверки установки с помощью:

conda create --prefix ./envs --no-default-packages python=3.6

В этой среде я использовал установку pip успешно с файлом колеса:

pip install mathsom-0.1.1-py3-none-any.whl

Но если я попытаюсь установить его из Test PyPI numpy, установка завершится ошибкой (она находится в файле install_requirements en setup.cfg). Код:

pip install -i https://test.pypi.org/simple/ mathsom

Код setup.cfg:

[metadata]
name = mathsom
author = Oliver Mohr B.
author_email = [email protected]
version = 0.1.1
description = Personal library for math related problems
long_description = file: README.md
long_description_content_type = text/markdown
url = https://github.com/oliverm91/mathsom
license_files = LICENSE
keywords = solvers, solver, interpolations, interpolation, numerics, derivatives, integrals

[options]
package_dir=
    = src
packages=find:
setup_requires = 
    numpy
install_requires =
    numpy
    scipy

[options.packages.find]
where=src

Setup.py

from setuptools import setup
if __name__ == '__main__':
    setup()

Первые строки ошибки (чрезвычайно длинное сообщение об ошибке): Требование установки Numpy для пакета не выполняется при установке pip из PyPI, но не из .whl

🤔 А знаете ли вы, что...
В Python есть инструменты для тестирования кода, такие как библиотека unittest.


26
1

Ответ:

Решено

Если вы посмотрите на свое сообщение об ошибке, вы увидите

Downloading ... mathsom-0.1.1-py3-none-any.whl

Так что он также использует файл whl. Однако способ установки numpy отличается. В вашем сообщении об ошибке видно, что numpy пытается скомпилировать из исходников, что неудивительно, так как вы установили индекс https://test.pypi.org/simple/ и есть только исходные дистрибутивы numpy под этим индексом. Если вы разрешите извлечение зависимостей из pypi, установив test.pypi в качестве дополнительного индекса с помощью --extra-index-url, тогда все будет работать (проверено в новой среде conda, созданной с помощью предоставленной вами команды):

pip install --extra-index-url https://test.pypi.org/simple/ mathsom
Looking in indexes: https://pypi.org/simple, https://test.pypi.org/simple/
Collecting mathsom
  Downloading https://test-files.pythonhosted.org/packages/4b/b3/76e6bbaa6c1da9f6f032e114af7f5724077154a28b5fc7069330185f2bc8/mathsom-0.1.1-py3-none-any.whl (18 kB)
Collecting scipy
  Downloading scipy-1.5.4-cp36-cp36m-win_amd64.whl (31.2 MB)
     |████████████████████████████████| 31.2 MB 393 kB/s
Collecting numpy
  Downloading numpy-1.19.5-cp36-cp36m-win_amd64.whl (13.2 MB)
     |████████████████████████████████| 13.2 MB ...
Installing collected packages: numpy, scipy, mathsom
Successfully installed mathsom-0.1.1 numpy-1.19.5 scipy-1.5.4