我正在使用tox来准备venv和运行单元测试,我的应用程序需要openopt库,而openopt库又将numpy.distutils.core
导入its中设置.py. 在
不管我怎么点numpy和openopt要求.txt我不能保证之前安装了numpy设置.py执行from openopt并用ImportError: No module named numpy.distutils.core
退出
我该怎么解决呢?为了发展,我可以添加numpy到要求.txt,运行tox,添加openopt并再次运行tox,但这不是生产准备就绪的设置。在
更新tox项目中存在一个问题,该问题可能会增加功能,以更“官方”的方式处理此类问题。讨论在这里:Add an option to run commands after virtualenv creation but before other steps
更新(背景知识多一点):主要问题是,假设某个其他包已经安装在
setup.py
中是一件坏事。这类问题属于bootstrapping的范畴,它们很难正确处理,但通常需要付出额外的努力才能实现。如果您在安装时真的需要一个不同的包,您可以查看setup_requires
和一些额外的魔法(比如在setuptools_scm上查看以获得灵感)。在最坏的情况下,如果软件包不是很复杂,您可以将其作为您的软件包的一部分(尽管这样做也会带来一些问题,比如保持更新和可能的许可冲突)。在原始答案:
如果您已经使用了
requirements.txt
,一个简单的(但公认的丑陋的)解决方案是:requirements-0.txt
和{例如
。。。或者,如果您想让它更简单,只需将导入到另一个包的
^{pr2}$setup.py
中的包粘贴在您的单个文件的前面要求.txt在它记录在https://testrun.org/tox/latest/example/basic.html#depending-on-requirements-txt
根据github上的常见做法,常见的窍门是:
^{pr2}$我有一种通用的方法来引导
setup.py
中的构建时间依赖项。即使您不使用tox
,也可以使用它。对于本例,请将以下代码段添加到setup.py
脚本的顶部。在警告:这将使用}。用这种方法安装
easy_install
安装{numpy
有点棘手。在相关问题 更多 >
编程相关推荐