在setup.py
内,我有类似的内容:
setup_requires=['nose>=1.0'],
tests_require=[],
问题在于,当我运行./setup.py test
时,它将使用setup.py
下载并解压缩这些模块。
我如何说服它使用临时目录,我不想用这些来控制源代码控制系统,我不想开始添加大量的exlude模式。
答案 0 :(得分:1)
如果问题是项目的源代码树,您应该制作一个脚本来删除在安装测试结束时由distutils创建的所有“dist”和“build”目录。 下载的包通常是源树中的* .egg文件夹。
您没有污染您的发行版。
来自setuptools文档:
setup_requires 不会自动安装在系统所在的位置 正在运行安装脚本。它们只是下载到设置中 目录,如果他们已经在本地不可用。如果你想要他们 要安装,以及在安装脚本时可用 运行,你应该将它们添加到install_requires和setup_requires。)
和
tests_require 如果您的项目测试需要一个或多个额外的测试 除了安装它之外的软件包,您可以使用此选项 指定它们。它应该是一个字符串或字符串列表指定 包的测试需要提供哪些其他发行版 跑。运行test命令时,setuptools将尝试获取 这些(甚至可以使用EasyInstall下载它们)。注意 这些必需的项目将不会安装在系统所在的位置 测试运行,但只下载到项目的设置 目录,如果它们尚未在本地安装。
http://packages.python.org/distribute/setuptools.html
如果您安装了某个包,则需要将其删除, 只需在python发行版的子文件夹“site-packages”中找到您的包 并删除它。最后删除easy-install.pth文件中的包引用 它通常位于相同的“site-packages”目录中。
答案 1 :(得分:0)
Starting with setuptools 7.0, transient dependencies loaded for setup_requires
, tests_require
, and similar are installed into ./.eggs. I strongly encourage adding that to your global ignore list.