如何说服setuptools使用来自setup_require或tests_require的require包的临时目录?

sor*_*rin 5 python distutils setuptools setup.py

在里面,setup.py我有这样的事情:

setup_requires=['nose>=1.0'],
tests_require=[],
Run Code Online (Sandbox Code Playgroud)

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

我怎么能说服它使用临时目录,我不想用这些来控制源控制系统,我不想开始添加很多很多的exlude模式.

J_Z*_*Zar 1

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

\n\n

您没有污染您的发行版。

\n\n

来自安装工具文档:

\n\n
\n

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

\n
\n\n

\n\n
\n

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

\n
\n\n

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

\n\n

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

\n