我正在尝试在 Windows 上设置tox以针对多个 python 安装运行测试。我已经将每个 python 安装在名为 的文件夹中C:\Python\PythonXX_YY
,XX
它是 python 版本(例如 27)并且YY
是 32 或 64。目前,我的 PATH 中唯一的 python 是C:\Python\Python33_64
,因为我使用新的 python 启动器来运行我想要的任何版本。我也在从这个版本运行 tox。
第一个问题是 tox 没有检测到这些安装,大概是因为它们不在默认位置。我可以通过在 tox.ini 中为每个环境设置路径来解决这个问题,但它使设置非常适合我的计算机。有没有更好的方法让 tox 知道我的蟒蛇在全球范围内的位置?
第二个问题是,在 tox.ini 中设置 python 位置,当我运行它时出现以下错误(对于 Python27):
Traceback (most recent call last):
File "c:\Python\Python33_64\lib\site-packages\virtualenv.py", line 2557, in <module>
main()
File "c:\Python\Python33_64\lib\site-packages\virtualenv.py", line 961, in main
never_download=options.never_download)
File "c:\Python\Python33_64\lib\site-packages\virtualenv.py", line 1062, in create_environment
site_packages=site_packages, clear=clear))
File "c:\Python\Python33_64\lib\site-packages\virtualenv.py", line 1255, in install_python
copy_required_modules(home_dir)
File "c:\Python\Python33_64\lib\site-packages\virtualenv.py", line 1193, in copy_required_modules
dst_filename = change_prefix(filename, dst_prefix)
File "c:\Python\Python33_64\lib\site-packages\virtualenv.py", line 1164, in change_prefix
(filename, prefixes)
AssertionError: Filename c:\Python\Python33_64\lib\site-packages\readline.py does not start with any of these prefixes: ['c:\\python\\python27_64']
ERROR: InvocationError: c:\python\python27_64\python.exe c:\Python\Python33_64\lib\site-packages\virtualenv.py --distribute py27 (see C:\Users\david.townshend\Documents\Global\Programming\norman\.tox\py27\log\py27-0.log)
看起来它试图从 Python3.3 安装 Python2.7 的东西,但我以前从未真正使用过 virtualenv,所以我可能会误解这个错误。
我不确定解决方案是什么,但在我看来,显而易见的解决方案应该是让 tox 使用 python 启动器来获取它需要的 python 版本。有没有办法让它做到这一点?