我的项目需要预先下载到目录中的所有鸡蛋,我希望setuptools 仅从该目录安装包。
在setup.cfg
我有:
[easy_install]
allow_hosts = None
find_links = ../../setup
我运行python setup.py develop
,它会正确找到并安装所有软件包。
为了进行测试,我还有setup.py
中指定的附加要求。
tests_require=["pinocchio==0.2"],
此蛋也位于../../setup
目录的本地。
我运行python setup.py test
它会看到依赖项并在../../setup
中找到鸡蛋就好了。但是,鸡蛋安装到我的当前目录而不是site-packages
目录中,其余的鸡蛋。
我已尝试在install-dir
和命令行中指定setup.cfg
,但似乎都不适用于tests
命令。
我可以将依赖项添加到install_requires
部分,但是如果可能的话,我想保留安装和测试所需的内容。
如何将依赖关系保留在tests_require
部分,但是将其安装到site-packages
目录?
答案 0 :(得分:3)
只是看一下源代码(setuptools / command / tests.py),它看起来不像setup.py测试不应该按设计安装任何东西(它正在测试,所以为什么要把任何东西放在site-packages中?)。它使用fetch_build_egg(setuptools / dist.py)来获取egg,这实际上是一个本地的easy_install。我怀疑你不能轻易地做出你想做的测试。
注释/思路: 我对setuptools的体验是它存在缺陷和未记录的行为。 (我发现一个特别令人讨厌的旅行是它不会进入软链接目录,当distutils会)。
我建议A)不要这样做。 :),B)通过调用easy_install包手动安装文件。或者C)查看setuptools系统并可能添加自己的命令。这并不难理解,并且当你获得未来的安装工具时,知道它会有很大的帮助。