У меня чистая установка Ubuntu 16.04 на экземпляре EC2. Я пошел дальше и обновил версию 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)
Я попытался обновить pip через
sudo python3 -m pip install --upgrade pip
и получение пункта от источника через
curl https://bootstrap.pypa.io/get-pip.py | sudo python3
Ни одна из них не устранила проблему. Есть идеи о том, что может происходить? Мне удалось воспроизвести ошибку, выполнив обновление до 3.7 на чистом сервере EC2, хотя я также делал то же самое в другом экземпляре EC2 при обновлении до 3.7. Я предполагаю, что в этом случае это связано с Ubuntu - есть ли причина, по которой 3.7 не очень хорошо играет с моим пипом?
Редактировать: Рекомендуется переустановить пип через
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.