使用tox在Windows上设置多个python安装

时间:2012-12-12 06:53:34

标签: python virtualenv tox

我正在尝试在Windows上设置tox以针对多个python安装运行测试。我在名为C:\Python\PythonXX_YY的文件夹中安装了每个python,XX是python版本(例如27),YY是32或64.目前,我的PATH中唯一的python是{ {1}},因为我使用新的python启动器来运行我想要的任何版本。我也从这个版本运行tox。

第一个问题是tox没有检测到这些安装,可能是因为它们不在默认位置。我可以通过为每个环境设置tox.ini中的路径来解决这个问题,但它使得设置非常特定于我的计算机。有没有更好的方法让tox知道我的蟒蛇在哪里全球?

第二个问题是,在tox.ini中设置python位置,运行时遇到以下错误(对于Python27):

C:\Python\Python33_64

看起来它试图从Python3.3安装Python2.7,但我之前从未真正使用过virtualenv,所以我可能会错误地解释这个错误。

我不确定解决方案是什么,但在我看来,显而易见的解决方案应该是tox使用python启动器来获取它需要的python版本。有没有办法让它做到这一点?

2 个答案:

答案 0 :(得分:3)

看起来tox在这些位置寻找蟒蛇:

m = re.match(r"python(\d)\.(\d)", name)
if m:
    # The standard names are in predictable places.
    actual = r"c:\python%s%s\python.exe" % m.groups()

所以你应该把你的蟒蛇放在c:\ Python3.3 \等。注意点.而不是下划线_。虽然这很痛苦。

答案 1 :(得分:1)

我不确定当OP首次提出问题时Tox是否这样做了,但似乎现在可以按如下方式单独设置每个环境:

[tox]
envlist = pyw35,pyw36
skip_missing_interpreters=True

[testenv]
commands = {envpython} setup.py test

[testenv:pyw35]
basepython = C:/Python/64bit/351/python.exe

[testenv:pyw36]
basepython = C:/Python/64bit/362/python.exe

user330612提供了相应的变体,但我个人无法让它发挥作用。

[testenv]
commands = {envpython} setup.py test
basepython=
   pyw35: C:/Python/64bit/351/python.exe
   pyw36: C:/Python/64bit/362/python.exe