7

我在一个目录中预先下载了我的项目需要的所有鸡蛋,我希望 setuptools从该目录安装包。

在我的setup.cfg我有:

[easy_install]
allow_hosts = None
find_links = ../../setup

我运行python setup.py develop,它找到并正确安装了所有软件包。

对于测试,我有一个附加要求,在setup.py.

tests_require=["pinocchio==0.2"],

这个 egg 也驻留在本地../../setup目录中。

我跑python setup.py test了,它看到了依赖关系并找到了../../setup很好的鸡蛋。但是,鸡蛋被安装到我的当前目录,而不是site-packages与其余鸡蛋的目录。

我已经尝试在命令行install-dir中和命令行上指定两者,setup.cfg但似乎都不适用于该tests命令。

我可以将依赖项添加到该install_requires部分,但如果可能的话,我想将安装和测试所需的内容分开。

如何将依赖项保留在该tests_require部分中,但将其安装到site-packages目录中?

4

1 回答 1

3

只看源代码(setuptools/command/tests.py),它看起来不像 setup.py test 不应该按设计安装任何东西(它正在测试,那么为什么要在站点包中放置任何东西?)。它使用 fetch_build_egg (setuptools/dist.py) 来获取鸡蛋,这实际上是在本地进行 easy_install。我怀疑你不能轻易地让 test 做你想做的事。

注释/想法:我对 setuptools 的体验是其中存在错误和未记录的行为。(我发现一个特别讨厌的问题是它不会进入软链接目录,而 distutils 会)。

我建议A)不要这样做。:),B)通过调用easy_install包手动安装文件。或 C)查看 setuptools 系统并可能添加您自己的命令。这并不难理解,当您获得未来的 setuptools 时,了解它会很有帮助。

于 2009-12-04T07:03:49.623 回答