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

标签 python virtualenv tox

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

第一个问题是 tox 没有检测到这些安装,大概是因为它们不在默认位置。我可以通过在 tox.ini 中为每个环境设置路径来解决这个问题,但这会使设置非常适合我的计算机。有没有更好的方法让 tox 知道我的 python 在全局范围内的位置?

第二个问题是,在 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 版本。有没有办法让它做到这一点?

最佳答案

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

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()

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

关于python - 使用 tox 在 Windows 上设置多个 python 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13834381/

相关文章:

python - 非常嘈杂信号的 Scipy FFT 频率分析

python - Numpy 通过两个掩码过滤二维数组

bash - 为什么 virtualenv 没有设置我的终端提示符?

python - Tox 和 django_toolbar : ImportError

python - matplotlib:如何将 XYZ 散点图转换为像素图像?

python - 如何防止模块代码从 python 中导入的模块执行?

python - 系统/pip readline 版本不匹配

python - 使用 virtualenv 时应该将源代码保存在哪里?

python - 如何使用 Tox 和 Poetry 在 CircleCI 中设置多个解释器?

python - tox 环境如何设置其 sys.path