【问题标题】:'setup.py test' egg install location?'setup.py test' 鸡蛋安装位置?
【发布时间】:2009-12-03 22:25:44
【问题描述】:

我的项目需要的所有鸡蛋都已预先下载到一个目录中,我希望 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 中找到了鸡蛋。但是,egg 会安装到我的 current 目录,而不是 site-packages 目录和其余的 egg。

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

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

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

【问题讨论】:

    标签: python setuptools


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的回复。我不会打扰 setuptools,按照你的建议做 A) 或 B)。
    猜你喜欢
    • 2017-03-08
    • 1970-01-01
    • 2016-01-05
    • 2015-05-20
    • 2017-05-29
    • 2011-11-29
    • 1970-01-01
    • 2011-02-17
    • 2013-07-11
    相关资源
    最近更新 更多