[英]pip and tox are broken after python upgrade
After a Python upgrade, to install Python 3.8, tox, pip, venv doesn't work. Python 升级后,要安装 Python 3.8,tox,pip,venv 不起作用。 I applied this , step 01 to 07 and after that I did:我应用了这个,步骤 01 到 07,然后我做了:
sudo update-alternatives --install /usr/bin/python python /usr/local/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.8 1
I made a mistake on the first line, so I fixed it with我在第一行犯了一个错误,所以我用
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2
And now I've this现在我有了这个
~ python --version
Python 2.7.16
~ python3 --version
Python 3.8.2
After that I tried these command:之后我尝试了这些命令:
➜ ~ /usr/local/bin/python3.8 -m venv $HOME/test
Error: Command '['/home/sguiho/test/bin/python3.8', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 2.
➜ ~ python -m pip install tox
Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/_internal/cli/base_command.py", line 143, in main
status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/_internal/commands/install.py", line 279, in run
with self._build_session(options) as session:
File "/usr/lib/python2.7/dist-packages/pip/_internal/cli/base_command.py", line 79, in _build_session
insecure_hosts=options.trusted_hosts,
File "/usr/lib/python2.7/dist-packages/pip/_internal/download.py", line 337, in __init__
self.headers["User-Agent"] = user_agent()
File "/usr/lib/python2.7/dist-packages/pip/_internal/download.py", line 100, in user_agent
zip(["name", "version", "id"], distro.linux_distribution()),
File "/usr/share/python-wheels/distro-1.3.0-py2.py3-none-any.whl/distro.py", line 120, in linux_distribution
return _distro.linux_distribution(full_distribution_name)
File "/usr/share/python-wheels/distro-1.3.0-py2.py3-none-any.whl/distro.py", line 675, in linux_distribution
self.version(),
File "/usr/share/python-wheels/distro-1.3.0-py2.py3-none-any.whl/distro.py", line 735, in version
self.lsb_release_attr('release'),
File "/usr/share/python-wheels/distro-1.3.0-py2.py3-none-any.whl/distro.py", line 892, in lsb_release_attr
return self._lsb_release_info.get(attribute, '')
File "/usr/share/python-wheels/distro-1.3.0-py2.py3-none-any.whl/distro.py", line 550, in __get__
ret = obj.__dict__[self._fname] = self._f(obj)
File "/usr/share/python-wheels/distro-1.3.0-py2.py3-none-any.whl/distro.py", line 998, in _lsb_release_info
stdout = subprocess.check_output(cmd, stderr=devnull)
File "/usr/lib/python2.7/subprocess.py", line 223, in check_output
raise CalledProcessError(retcode, cmd, output=output)
CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1
➜ ~ python3 -m pip install tox
ERROR: Exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 188, in main
status = self.run(options, args)
File "/usr/local/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 286, in run
with self._build_session(options) as session:
File "/usr/local/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 101, in _build_session
session = PipSession(
File "/usr/local/lib/python3.8/site-packages/pip/_internal/download.py", line 559, in __init__
self.headers["User-Agent"] = user_agent()
File "/usr/local/lib/python3.8/site-packages/pip/_internal/download.py", line 144, in user_agent
zip(["name", "version", "id"], distro.linux_distribution()),
File "/usr/local/lib/python3.8/site-packages/pip/_vendor/distro.py", line 122, in linux_distribution
return _distro.linux_distribution(full_distribution_name)
File "/usr/local/lib/python3.8/site-packages/pip/_vendor/distro.py", line 677, in linux_distribution
self.version(),
File "/usr/local/lib/python3.8/site-packages/pip/_vendor/distro.py", line 737, in version
self.lsb_release_attr('release'),
File "/usr/local/lib/python3.8/site-packages/pip/_vendor/distro.py", line 899, in lsb_release_attr
return self._lsb_release_info.get(attribute, '')
File "/usr/local/lib/python3.8/site-packages/pip/_vendor/distro.py", line 552, in __get__
ret = obj.__dict__[self._fname] = self._f(obj)
File "/usr/local/lib/python3.8/site-packages/pip/_vendor/distro.py", line 1012, in _lsb_release_info
stdout = subprocess.check_output(cmd, stderr=devnull)
File "/usr/local/lib/python3.8/subprocess.py", line 411, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/usr/local/lib/python3.8/subprocess.py", line 512, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.
Traceback (most recent call last):
File "/usr/local/lib/python3.8/runpy.py", line 193, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/local/lib/python3.8/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/usr/local/lib/python3.8/site-packages/pip/__main__.py", line 19, in <module>
sys.exit(_main())
File "/usr/local/lib/python3.8/site-packages/pip/_internal/__init__.py", line 77, in main
return command.main(cmd_args)
File "/usr/local/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 234, in main
session = self._build_session(
File "/usr/local/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 101, in _build_session
session = PipSession(
File "/usr/local/lib/python3.8/site-packages/pip/_internal/download.py", line 559, in __init__
self.headers["User-Agent"] = user_agent()
File "/usr/local/lib/python3.8/site-packages/pip/_internal/download.py", line 144, in user_agent
zip(["name", "version", "id"], distro.linux_distribution()),
File "/usr/local/lib/python3.8/site-packages/pip/_vendor/distro.py", line 122, in linux_distribution
return _distro.linux_distribution(full_distribution_name)
File "/usr/local/lib/python3.8/site-packages/pip/_vendor/distro.py", line 677, in linux_distribution
self.version(),
File "/usr/local/lib/python3.8/site-packages/pip/_vendor/distro.py", line 737, in version
self.lsb_release_attr('release'),
File "/usr/local/lib/python3.8/site-packages/pip/_vendor/distro.py", line 899, in lsb_release_attr
return self._lsb_release_info.get(attribute, '')
File "/usr/local/lib/python3.8/site-packages/pip/_vendor/distro.py", line 552, in __get__
ret = obj.__dict__[self._fname] = self._f(obj)
File "/usr/local/lib/python3.8/site-packages/pip/_vendor/distro.py", line 1012, in _lsb_release_info
stdout = subprocess.check_output(cmd, stderr=devnull)
File "/usr/local/lib/python3.8/subprocess.py", line 411, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/usr/local/lib/python3.8/subprocess.py", line 512, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.
Do you have any ideas?你有什么想法? Should I reinstall my OS to avoid wasting my time?我应该重新安装我的操作系统以避免浪费我的时间吗?
OS: Debian Buster操作系统:Debian 巴斯特
Have you executed $ sudo update-alternatives --config python
as well?您是否也执行过$ sudo update-alternatives --config python
?
You can have multiple python version installed.您可以安装多个 python 版本。 The best way is to use virtual environment, with specifying from which python version you are stemming from.最好的方法是使用虚拟环境,并指定您来自哪个 python 版本。 Just as in your reference article:就像您的参考文章中一样:
python3.8 -m venv my_app_venv
and then source the env: python3.8 -m venv my_app_venv
然后获取环境:
source my_app_venv/bin/activate
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.