pip3 -V должен напечатать версию pip3, но возвращает в Ubuntu 16.04 модуль с именем 'pip'. - PullRequest
0 голосов
/ 18 февраля 2019

Я использую Python 3.7.2 в Ubuntu 16.04.Я установил пакет python3-pip из репозиториев Ubuntu по умолчанию, и apt сообщает, что я установил python3-pip 8.1.1-2ubuntu0.4 (версия 8.1.1), но pip3 этого не делаетработать должным образом.pip3 -V должен печатать версию pip3, но вместо этого возвращается No module named 'pip'.

root@VM-0-8-ubuntu:/usr/bin# python -V
Python 3.7.2
root@VM-0-8-ubuntu:/usr/bin# pip3 -V
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
ModuleNotFoundError: No module named 'pip'
root@VM-0-8-ubuntu:/usr/bin# sudo apt-get install python3-pip
Reading package lists... Done
Building dependency tree       
Reading state information... Done
python3-pip is already the newest version (8.1.1-2ubuntu0.4).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@VM-0-8-ubuntu:/usr/bin# pip3 -V
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
ModuleNotFoundError: No module named 'pip'
root@VM-0-8-ubuntu:/usr/bin# sudo apt updaate
E: Invalid operation updaate
root@VM-0-8-ubuntu:/usr/bin# sudo apt update
Hit:1 http://mirrors.tencentyun.com/ubuntu xenial InRelease
Hit:2 http://mirrors.tencentyun.com/ubuntu xenial-security InRelease                 
Ign:3 http://mirrors.aliyun.com/ubuntu trusty InRelease                              
Hit:4 http://mirrors.tencentyun.com/ubuntu xenial-updates InRelease     
Hit:5 http://mirrors.aliyun.com/ubuntu trusty-security InRelease        
Hit:6 http://mirrors.aliyun.com/ubuntu trusty-updates InRelease                   
Hit:7 http://mirrors.aliyun.com/ubuntu trusty-proposed InRelease                  
Hit:8 http://mirrors.aliyun.com/ubuntu trusty-backports InRelease                 
Hit:9 http://mirrors.aliyun.com/ubuntu trusty Release                             
Reading package lists... Done 
Building dependency tree       
Reading state information... Done
All packages are up to date.
root@VM-0-8-ubuntu:/usr/bin# sudo apt upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@VM-0-8-ubuntu:/usr/bin# sudo apt-get install python3-pip
Reading package lists... Done
Building dependency tree       
Reading state information... Done
python3-pip is already the newest version (8.1.1-2ubuntu0.4).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@VM-0-8-ubuntu:/usr/bin# pip3 -V
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
ModuleNotFoundError: No module named 'pip'
root@VM-0-8-ubuntu:/usr/bin#

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

pip упакован отдельно от Python в Ubuntu ( python-pip и python3-pip ).Ваша версия pip3 (версия 8.1.1) не распознается Python 3.7.2, которого нет в репозиториях Ubuntu 16.04 по умолчанию.Поэтому вы должны принудительно переустановить pip3.Откройте терминал и введите:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py  
python3 get-pip.py --force-reinstall     

Проверьте версию pip3, чтобы убедиться, что это последняя версия.

<b>$</b> pip3 -V
pip 19.0.2

Причина, по которой Python 3 не может найти pip3, заключается в том, чтоиз-за плачевного состояния ваших программных источников, которые вы должны исправить немедленно, иначе ошибки этого типа будут повторяться.Вы никогда не должны смешивать программные источники из двух разных выпусков Ubuntu, в вашем случае xenial (16.04) и trusty (14.04).Самый простой способ исправить ваши программные источники - просто заменить все, что у вас есть в /etc/apt/sources.list, на исходные программные источники Ubuntu 16.04 по умолчанию.Стандартный Ubuntu 16.04 sources.list выглядит следующим образом:

Стандартный файл sources.list для Ubuntu 16.04 выглядит следующим образом:

deb http://archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse  
deb http://archive.ubuntu.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu xenial-security main restricted universe multiverse  
deb http://archive.canonical.com/ubuntu xenial partner  

Открыть /etc/apt/sources.list для редактирования в текстовом редакторе nano:

sudo nano /etc/apt/sources.list  

Альтернативный способ сделать это - закомментировать все строки, содержащие строку trusty в /etc/aptsources.list, предшествуя каждой строке, содержащей строку trusty, с символом #.

Инструкции по использованию nano всегда отображаются внизу страницы.Используйте комбинацию клавиш Ctrl + O и после этого нажмите Введите , чтобы сохранить файл в его текущем местоположении.Используйте комбинацию клавиш Ctrl + X для выхода из nano.

После того как вы восстановили sources.list, запустите sudo apt update, чтобы обновить список доступных пакетов.Вы также можете переключить зеркало по умолчанию на зеркало, которое ближе к вам во вкладке Ubuntu Software приложения Software & Updates.Таким образом установка программного обеспечения и обновления будут загружаться быстрее.

0 голосов
/ 18 февраля 2019

Это может быть сломано.Вы можете попробовать

sudo apt purge python3-pip  
sudo apt install python3-pip

Если это не сработает, возможно, вы используете не упакованную версию пипса, и, возможно, основной pip перенесен в pip._internal.В вашем файле pip3 измените значение from pip import main на from pip._internal import main.Вы можете найти местоположение файла pip3, набрав which pip3 в своем терминале.

...