我将项目所需的所有鸡蛋预先下载到目录中,我希望setuptools 只安装该目录中的包.
在我的setup.cfg身上:
[easy_install]
allow_hosts = None
find_links = ../../setup
Run Code Online (Sandbox Code Playgroud)
我跑python setup.py develop,它找到并正确安装所有包.
为了测试,我有一个额外的要求,在setup.py.
tests_require=["pinocchio==0.2"],
Run Code Online (Sandbox Code Playgroud)
这个蛋也位于../../setup目录中.
我跑了python setup.py test,它看到依赖,并发现鸡蛋../../setup很好.但是,egg会安装到我当前的目录而不是site-packages其他鸡蛋的目录.
我已经尝试在命令行中和命令行中指定install-dir它们setup.cfg,但似乎都不适用于该tests命令.
我可以将依赖项添加到该install_requires部分,但我想保留安装和测试所需的内容,如果可能的话.
如何将依赖项保留在该tests_require部分中,但是将其安装到site-packages目录中?
只需查看源代码(setuptools/command/tests.py),setup.py test 似乎不应该按设计安装任何内容(它正在测试,所以为什么要在站点包中放置任何内容?)。它使用 fetch_build_egg (setuptools/dist.py) 来获取 Egg,这实际上执行了本地 easy_install。我怀疑你不能轻易地让测试做你想做的事。
注释/想法:我对 setuptools 的经验是它存在错误和未记录的行为。(我发现一个特别令人讨厌的问题是它不会进入软链接目录,而 distutils 会进入)。
我建议 A) 不这样做。:),B) 通过调用 easy_install 包手动安装文件。或 C) 查看 setuptools 系统并可能添加您自己的命令。它并不太难理解,并且当您将来遇到安装工具问题时了解它会很有帮助。