【发布时间】:2020-08-16 07:55:53
【问题描述】:
我在 EC2 实例上全新安装了 ubuntu 16.04。我已经将 Python 版本从 3.5 升级到了 3.7。不幸的是,这似乎使 pip3 不起作用。尽管肯定安装了 pip3:
~$ which pip3
/usr/bin/pip3
当我尝试用 pip3 做任何事情时,它显示相同的错误:
~$ pip3 --version
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main' from 'pip' (/usr/local/lib/python3.7/site-packages/pip/__init__.py)
我已经尝试通过
升级 pipsudo python3 -m pip install --upgrade pip
并通过
从源中获取 pipcurl https://bootstrap.pypa.io/get-pip.py | sudo python3
两者都没有解决问题。关于可能发生的事情有什么想法吗?我已经设法通过在干净的 EC2 服务器上升级到 3.7 来复制错误,尽管在升级到 3.7 时我也在另一个 EC2 实例上遇到了同样的问题。在这种情况下,我猜这与 ubuntu 有关——3.7 与我的 pip 不能很好地配合是否有原因?
编辑: 建议通过
重新安装 pip python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
这会产生以下错误跟踪:
ERROR: Exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", line 188, in main
status = self.run(options, args)
File "/usr/local/lib/python3.7/site-packages/pip/_internal/commands/uninstall.py", line 48, in run
with self._build_session(options) as session:
File "/usr/local/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", line 108, in _build_session
index_urls=self._get_index_urls(options),
File "/usr/local/lib/python3.7/site-packages/pip/_internal/download.py", line 559, in __init__
self.headers["User-Agent"] = user_agent()
File "/usr/local/lib/python3.7/site-packages/pip/_internal/download.py", line 144, in user_agent
zip(["name", "version", "id"], distro.linux_distribution()),
File "/usr/local/lib/python3.7/site-packages/pip/_vendor/distro.py", line 122, in linux_distribution
return _distro.linux_distribution(full_distribution_name)
File "/usr/local/lib/python3.7/site-packages/pip/_vendor/distro.py", line 677, in linux_distribution
self.version(),
File "/usr/local/lib/python3.7/site-packages/pip/_vendor/distro.py", line 737, in version
self.lsb_release_attr('release'),
File "/usr/local/lib/python3.7/site-packages/pip/_vendor/distro.py", line 899, in lsb_release_attr
return self._lsb_release_info.get(attribute, '')
File "/usr/local/lib/python3.7/site-packages/pip/_vendor/distro.py", line 552, in __get__
ret = obj.__dict__[self._fname] = self._f(obj)
File "/usr/local/lib/python3.7/site-packages/pip/_vendor/distro.py", line 1012, in _lsb_release_info
stdout = subprocess.check_output(cmd, stderr=devnull)
File "/usr/local/lib/python3.7/subprocess.py", line 411, in check_output
**kwargs).stdout
File "/usr/local/lib/python3.7/subprocess.py", line 512, in run
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.
【问题讨论】:
-
尝试
python3.7 -m pip,确保您的文件夹中没有任何名为pip的内容。
标签: python python-3.x ubuntu pip