【问题标题】:Where does tox search for PyPy / PyPy3 on Windows?tox 在 Windows 上哪里搜索 PyPy / PyPy3?
【发布时间】:2016-07-22 09:03:28
【问题描述】:

我正在使用tox 针对不同的 Python 解释器运行测试。 tox 找到我安装的 CPython 解释器,因为它们位于默认位置。但是,当我为 Windows 下载 PyPy 时,它是一个存档,而不是安装程序。我应该把 PyPy / PyPy3 放在哪里以便tox 自动找到它们?

【问题讨论】:

  • 你应该提到,如果你尝试显而易见的事情会发生什么:将pypy.exe放入%PATH%的文件夹中
  • @J.F.Sebastian 但 PyPy3 的可执行文件也是 pypy,所以如果我想要两者都不是解决方案。
  • 如果您创建pypy3.bat 来调用所需的 pypy 可执行文件,则可能是这样。尽管 tox 使用一些启发式方法可能没有必要找到 Pypy 3 可执行文件,即使它在 Windows 上名为 pypy.exe

标签: python pypy tox


【解决方案1】:

就像已经建议的那样,在 Windows 上执行此操作的方法是创建一个可执行批处理文件作为命令的包装器,并确保它位于 PATH 中。

因为这个问题是在 tox 文档中被问到的,所以增加了一个部分来更详细地解释这个问题:

转述tox docs

Windows 上的多个 Python 版本

为了在本地运行单元测试,需要安装 tox.ini 中登记的所有 Python 版本。

一个解决方案是安装最新的 conda,然后通过 conda envs 安装所有 Python 版本。这会 为每个 Python 版本创建单独的文件夹。

conda create -n python2.7 python=2.7 anaconda

要让 tox 找到它们,您需要:

  • 将主安装版本添加到系统PATH变量(例如D:\Anaconda
  • 对于其他版本,在主安装文件夹中创建一个 BAT 脚本,以将调用委托给正确的 Python 解释器 - 例如创建一个名为 python2.7.bat 的文件,其中包含:

@D:\Anaconda\pkgs\python-2.7.13-1\python.exe %*

这样你也可以根据需要直接从cli调用匹配的Python版本(类似于UNIX系统),例如:

 python2.7 main.py
 python3.6 main.py

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 2014-08-27
    相关资源
    最近更新 更多