Tox virtualenv 混乱

Tox virtualenv confusion

刚开始使用 tox 测试带有 Python 2.7 和 3.4 的库。使用以下 tox.ini 文件后,我有两个问题:

[tox]
envlist = {py27,py3}
sitepackages = True

[testenv]
deps= -rrequirements.txt
commands = nosetests -w tests/ --with-coverage --cover-erase --cover-package=pyppa --with-xunit --xunit-file={toxinidir}/build/ppa-python-sdk_{envname}_unit_tests.xml
coverage xml -o {toxinidir}/build/{envname}_coverage.xml

在 运行 tox 之后我有以下问题:

  1. 该项目依赖于 numpyscipy,它们都安装在我的全局环境中,我认为在 tox.ini 文件中使用 sitepackages = True 可以防止 tox在 virutalenvironment 中安装这些并强制它使用全局环境中的那些,但是 tox 在 2.7 和 3 的 .tox/ 虚拟环境中安装了最新版本。我是否误解了 sitepackages 指令?
  2. 查看虚拟环境目录中 .tox/ 目录的下方,我看到以下(缩写)结构:

.

  .tox/
    py27/
      include/
        python2.7/
      lib
        python2.7/
      ...
    py3/
      include/
        python2.7/
      lib
        python2.7/
      ...

我向你保证这不是错字。在py3虚拟环境includelib子目录下有名为python2.7的目录,这些是includelib中唯一的子目录。一切似乎都正常,但我很好奇为什么这些目录以这种方式命名。有人可以解释一下吗?

谢谢。

1) sitepackages 不是全局 Tox 设置。这是一个环境设置,所以把它放在 [testenv].

2) py3 不是 a predefined variant。请改用 py34