5

在里面setup.py我有这样的东西:

setup_requires=['nose>=1.0'],
tests_require=[],

问题是,当我运行./setup.py test它时,它会下载并解压目录中的这些模块setup.py

我怎样才能说服它为此使用一个临时目录,我不想用这些污染源代码控制系统,我不想开始添加很多很多排除模式。

4

2 回答 2

1

如果问题出在项目的源代码树上,您可能应该编写一个脚本来删除 distutils 在设置测试结束时创建的所有“dist”和“build”目录。下载的包通常是源代码树中的 *.egg 文件夹。

你没有污染你的分布。

从 setuptools 文档:

setup_requires不会自动安装在运行安装脚本的系统上。如果它们在本地不可用,则只需将它们下载到安装目录。如果您希望它们被安装,并且在运行安装脚本时可用,您应该将它们添加到 install_requires 和 setup_requires。)

tests_require如果你的项目的测试除了安装它需要的那些之外还需要一个或多个额外的包,你可以使用这个选项来指定它们。它应该是一个字符串或字符串列表,指定需要存在哪些其他发行版才能运行包的测试。当您运行测试命令时,setuptools 将尝试获取这些(甚至使用 EasyInstall 下载它们)。请注意,这些必需的项目不会安装在运行测试的系统上,如果它们尚未在本地安装,则只会下载到项目的安装目录。

http://packages.python.org/distribute/setuptools.html

如果你已经安装了一些包并且你需要删除它,只需在你的 python 发行版的子文件夹“site-packages”中找到你的包并删除它。最后删除 easy-install.pth 文件中的包引用,该文件通常位于相同的“site-packages”目录中。

于 2012-05-22T14:16:50.797 回答
0

从 setuptools 7.0 开始,为 、 和类似文件加载的临时依赖setup_requirestests_require安装到 ./.eggs 中。我强烈建议将其添加到您的全局忽略列表中。

于 2015-06-30T19:22:36.927 回答