【发布时间】:2021-03-16 23:08:06
【问题描述】:
我发现了一些类似的问题/答案,但不是我所拥有的。感谢您的帮助!
系统:ubuntu 20.04 全新安装,python 3.8.5 系统安装,pyenv 运行良好。 不过,Tox 会创建 venv,但会继续运行系统解释器。
pyenv 运行良好:
aj@jaja:/tmp$ python --version
Python 3.8.5
aj@jaja:/tmp$ pyenv versions
* system (set by /home/aj/.pyenv/version)
3.6.13
pypy3.6-7.0.0
aj@jaja:/tmp$ pyenv local 3.6.13
aj@jaja:/tmp$ python --version
Python 3.6.13
我的 tox.ini :
[tox]
envlist = 3.6.13, 3.8.5
skipsdist = True
[testenv]
deps =
pytest
commands =
python --version
python -c 'import sys; print(sys.executable)'
pytest
tox 似乎可以很好地创建 venv:
aj@jaja:/tmp/foo$ tox -l
3.6.13
3.8.5
但它总是运行系统解释器而不是 venv 解释器:
3.6.13 installed: attrs==20.3.0,iniconfig==1.1.1,packaging==20.9,pluggy==0.13.1,py==1.10.0,pyparsing==2.4.7,pytest==6.2.2,toml==0.10.2
3.6.13 run-test-pre: PYTHONHASHSEED='3215808768'
3.6.13 run-test: commands[0] | python --version
**Python 3.8.5**
3.6.13 run-test: commands[1] | python -c 'import sys; print(sys.executable)'
**/tmp/foo/.tox/3.6.13/bin/python**
3.6.13 run-test: commands[2] | pytest
======================================================================= test session starts =======================================================================
platform linux -- Python 3.8.5, pytest-6.2.2, py-1.10.0, pluggy-0.13.1
cachedir: .tox/3.6.13/.pytest_cache
rootdir: /tmp/foo
collected 1 item
test_calc.py .
感兴趣的 pyenv 显示了这一点,但我不知道如何直接使用 tox 来纠正它:
aj@jaja:/tmp/foo$ cat .tox/3.6.13/pyvenv.cfg
home = /usr
implementation = CPython
version_info = 3.8.5.final.0
virtualenv = 20.4.3
include-system-site-packages = false
base-prefix = /usr
base-exec-prefix = /usr
base-executable = /usr/bin/python3.8
【问题讨论】:
-
更新:感谢你们两位的指示和信息 :) 我的错误是我认为 tox 会安装所需的环境,如果它之前下载过。就我而言,3.6 已下载但未激活。 => 我在顶部添加了一个图层以使两者都可用:aj@jaja:~/foo_env$ pyenv local 3.6.13 3.8.5 aj@jaja:~/foo_env$ cd foo/aj@jaja:~/foo_env$ rm -rf .tox aj@jaja:~/foo_env$ tox aj@jaja:~/foo_env/foo$ tox