токсик не находит numpy - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь запустить tox, чтобы автоматически протестировать мой проект. Мой файл токсина очень прост:

[tox]
envlist = py3

[testenv]
deps = pytest
commands =
    pytest --doctest-modules

У меня также есть файл require.txt, который определяет необходимые модули:

cmake
osqp
numpy
cvxpy
networkx
matplotlib

и файл setup.py:

from setuptools import setup, find_packages
... 
requirements = ["numpy","cvxpy","networkx","matplotlib"]
... 
setup(
    name='fairpy', 
    version='1.0', 
    description=...,
    packages=find_packages(),
    install_requires=requirements, 
    ...
)

Но когда я запускаю tox из терминала, я получаю сообщение о том, что модуль numpy не найден:

GLOB sdist-make: /mnt/d/Dropbox/ariel/fairpy/setup.py
py3 inst-nodeps: /mnt/d/Dropbox/ariel/fairpy/.tox/.tmp/package/1/fairpy-1.0.zip
py3 installed: attrs==19.3.0,fairpy==1.0,more-itertools==8.1.0,packaging==20.1,pluggy==0.13.1,py==1.8.1,pyparsing==2.4.6,pytest==5.3.4,six==1.14.0,wcwidth==0.1.8
py3 run-test-pre: PYTHONHASHSEED='188600482'
py3 run-test: commands[0] | pytest --doctest-modules
========================================================== test session starts ==========================================================
platform linux -- Python 3.8.1, pytest-5.3.4, py-1.8.1, pluggy-0.13.1
cachedir: .tox/py3/.pytest_cache
rootdir: /mnt/d/Dropbox/ariel/fairpy
collected 0 items / 20 errors                                                                                                           

================================================================ ERRORS =================================================================
__________________________________________________ ERROR collecting Deng_Qi_Saberi.py ___________________________________________________
Deng_Qi_Saberi.py:13: in <module>
    from agents import *
agents.py:10: in <module>
    import numpy as np
E   ModuleNotFoundError: No module named 'numpy'
...

У меня установлен numpy - в моем python 3.8.1 терминал, я могу без проблем импортировать numpy.

Что я делаю не так с tox?

1 Ответ

1 голос
/ 01 мая 2020

Во-первых,

У меня установлено numpy - в моем терминале python 3.8.1 я могу без проблем импортировать numpy.

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

Во-вторых, если вы хотите, чтобы tox установил файл требований, вы должны добавить deps = -rrequirements.txt tox.ini. И вы также всегда можете добавить numpy вручную в качестве зависимости.

В-третьих, tox имеет некоторые проблемы с отслеживанием зависимостей в некоторых случаях. Попробуйте запустить tox -r, чтобы заставить tox воссоздать свою среду и убедиться, что numpy упоминается в разделе "install_requires" в файле setup.py.

...