Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python tox在Windows上在哪里搜索PyPy/PyPy3?_Python_Pypy_Tox - Fatal编程技术网

Python tox在Windows上在哪里搜索PyPy/PyPy3?

Python tox在Windows上在哪里搜索PyPy/PyPy3?,python,pypy,tox,Python,Pypy,Tox,我使用tox对不同的Python解释器运行测试tox查找CPython解释器的我的安装,因为它们位于默认位置。然而,当我下载PyPyforWindows时,它是一个归档文件,而不是一个安装程序。我应该将PyPy/PyPy3放在哪里,以便tox自动找到它们?在Windows上这样做的方法是创建一个executabe批处理文件,作为命令的包装,并确保它位于路径中 由于tox文档中提出了这个问题,因此增加了一个部分,详细解释如下: 从原文中转述: Windows上的多个Python版本 为了在本地运行

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

在Windows上这样做的方法是创建一个executabe批处理文件,作为命令的包装,并确保它位于
路径中

由于tox文档中提出了这个问题,因此增加了一个部分,详细解释如下:

从原文中转述:

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%*

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

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

您应该提到,如果尝试显而易见的方法,会发生什么:将
pypypy.exe
放入
%PATH%
@J.F.Sebastian中的文件夹中,但是PyPy3的可执行文件也是
pypypypy
,因此如果我想要两者,这不是解决方案。如果您创建调用所需pypypypy可执行文件的
pypypy3.bat
。虽然如果
tox
使用一些启发式方法,则可能没有必要查找pypy3可执行文件,即使它在Windows上命名为
pypypy.exe