'setup.py test'鸡蛋安装位置?

时间:2009-12-03 22:25:44

标签: python setuptools

我的项目需要预先下载到目录中的所有鸡蛋,我希望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目录?

1 个答案:

答案 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系统并可能添加自己的命令。这并不难理解,并且当你获得未来的安装工具时,知道它会有很大的帮助。