如何修复 tox AttributeError: module virtualenv.create.via_global_ref.builtin.cpython.mac_os has no attribute CPython2macOsArmFramework
问题:
尝试使用 tox 运行 Python 测试时,你看到类似这样的错误消息
tox_virtualenv_error.txt
GLOB sdist-make: /home/uli/dev/UliEngineering/setup.py
py37 create: /home/uli/dev/UliEngineering/.tox/py37
ERROR: InterpreterNotFound: python3.7
py38 create: /home/uli/dev/UliEngineering/.tox/py38
ERROR: invocation failed (exit code 1), logfile: /home/uli/dev/UliEngineering/.tox/py38/log/py38-0.log
========================================================================================= log start =========================================================================================
AttributeError: module 'virtualenv.create.via_global_ref.builtin.cpython.mac_os' has no attribute 'CPython2macOsArmFramework'
========================================================================================== log end ==========================================================================================
ERROR: InvocationError for command /usr/bin/python3 -m virtualenv --no-download --python /usr/bin/python3 py38 (exited with code 1)
__________________________________________________________________________________________ summary __________________________________________________________________________________________
ERROR: py37: InterpreterNotFound: python3.7
ERROR: py38: InvocationError for command /usr/bin/python3 -m virtualenv --no-download --python /usr/bin/python3 py38 (exited with code 1)解决方案
此错误发生是因为安装了两个不同且不兼容的 virtualenv 版本。
首先,使用以下命令卸载所有版本:
首先**以用户身份运行(不是 root)**卸载 ~/.local 中本地安装的任何包:
pip_uninstall_virtualenv.sh
pip uninstall virtualenv然后,卸载全局包
sudo_pip_uninstall_virtualenv.sh
sudo pip uninstall virtualenv现在在 Debian/Ubuntu 上卸载 apt 包(其他发行版使用你的包管理器卸载):
apt_purge_virtualenv.sh
sudo apt purge python3-virtualenv现在是时候只安装一个版本的 virtualenv:
pip_install_virtualenv.sh
pip install -U virtualenv之后,你可以再次尝试运行 tox。
Check out similar posts by category:
Python
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow