答案 0 :(得分:2)
对于3.8.1的一项检查(假设python3.8指向3.8.2),可以使用discover flag
tox --discover /path/to/python3.8.1 -e py38
如果要定义一个始终使用3.8.1的环境,则可以通过定义一个新的tox环境并将basepython设置为python3.8.1
来实现。
[testenv:py381]
basepython = python3.8.1
[testenv:py382]
basepython = python3.8.2
答案 1 :(得分:1)
我会去Docker并运行它的容器。
$.attr
prop
您可以使用以下命令查看可用的图像:
$ docker run -it --rm -w /opt -v "$PWD:/opt" python:3.4.2 python <script.py>
-it - interactive mode
--rm - remove container after the run
-w - working directory inside container
-v - map directory $PWD from host to /opt inside container
<container> - python:3.4.2
<command> - python script.py
过滤掉beta和alpha版本,因此,如果需要它们-只需删除grep。
如果您需要列表中没有的Python版本,则可以使用自定义Python构建$ curl -s https://registry.hub.docker.com/v1/repositories/python/tags | \
jq -r .[].name | grep "^[23][.0-9]*$" | sort -V
2
2.7
2.7.7
2.7.8
2.7.9
2.7.10
2.7.11
2.7.12
2.7.13
2.7.14
2.7.15
2.7.16
3
3.2
3.2.6
3.3
3.3.5
3.3.6
3.3.7
3.4
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
3.4.10
3.5
3.5.0
3.5.1
3.5.2
3.5.3
3.5.4
3.5.5
3.5.6
3.5.7
3.6
3.6.0
3.6.1
3.6.2
3.6.3
3.6.4
3.6.5
3.6.6
3.6.7
3.6.8
3.6.9
3.7
3.7.0
3.7.1
3.7.2
3.7.3
3.7.4
图像。
以Alpine linux为例(这确实很小) https://github.com/docker-library/python/blob/f82205cde8f0a5ffa276103a50d843edced67757/3.7/alpine3.10/Dockerfile
答案 2 :(得分:0)
可能最麻烦(但乏味)的方法是在监狱或VM中依次安装不同版本的Python,然后在其上测试代码。
如果在类似UNIX的系统上从源代码安装Python,则可以尝试使用不同的前缀(例如/opt/patch1
,opt/patch2
等)并排安装它们。
然后显着使用正确的python(如/opt/patch1/bin/python3
)运行测试。一个警告:我不确定在这种情况下Python可执行文件是否会找到正确的共享库。
通过ms-windows安装程序,您可以选择安装位置。如果您指示它 not 将Python放入PATH中,并且未设置文件关联等,那么这也可能会起作用。您还必须使用完整路径显式调用正确的Python。