如何配置tox使其识别并使用pyenv安装的Python 3.7?
解决tox无法找到Python 3.7解释器的问题
1. 先确认pyenv的环境配置没问题
检查你的shell配置文件(比如~/.bashrc或~/.zshrc),确保已经正确配置pyenv的路径:
export PATH="$HOME/.pyenv/shims:$PATH" eval "$(pyenv init -)"
保存后执行source ~/.bashrc(对应你使用的shell配置文件)刷新环境,然后运行which python3.7,输出需要指向~/.pyenv/shims/python3.7,如果指向系统路径说明pyenv未正确生效。
2. 在tox.ini里明确指定basepython
修改你的tox.ini,给[testenv]段添加各Python版本对应的解释器配置:
[tox] min_version = 4.0 env_list = py{37,38,39,310}-drf{314} [testenv] envdir = {toxworkdir}/venvs/{envname} # 为每个Python版本指定对应解释器 basepython = py37: python3.7 py38: python3.8 py39: python3.9 py310: python3.10 [testenv:py{37,38,39,310}-drf{314}] commands = python -m pytest tests/test_rest_framework deps = pytest -e .[dev] drf314: djangorestframework>=3.14,<3.15
这样tox会根据环境名称匹配对应的Python解释器,只要pyenv的shims目录在PATH中,就能找到3.7版本。
3. (可选)安装tox-pyenv插件强化集成
如果上述方法无效,可以安装tox-pyenv插件,让tox直接读取pyenv管理的Python版本:
pip install tox-pyenv
安装完成后无需额外配置,tox会自动识别pyenv中已安装的所有Python版本。
4. 测试配置是否生效
运行以下命令验证能否正常创建py37环境:
tox -e py37-drf314 --notest
如果没有报错,说明环境可以正常创建,之后即可运行测试命令。
内容的提问来源于stack exchange,提问作者JPG
相关产品推荐
相关产品推荐

