Рабочий Pip3 ImportError: не может импортировать имя 'основной'

Я хочу установить Scipy (уже установили Numpy). Мне установили Python 3.5.1-3 с ОС и IDLE3 (3.5.2). Когда я совершил нападки в терминале

sudo pip3 install scipy

Это распечатывает

Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'

Я уже попытался переустановить pip3 и перезапустить ОС, но это не изменилось. pip3 работал странно с кем-то еще?

20
задан 17 April 2018 в 04:11

11 ответов

numpy и scipy находятся в репозиториях по умолчанию всех в настоящее время поддерживаемых версий Ubuntu. Для установки numpy и scipy для Python 3.x открывают терминал и тип:

sudo apt update    
sudo apt install python3-numpy python3-scipy  

Для Python 2.x это:

sudo apt update  
sudo apt install --no-install-recommends python2.7-minimal python2.7 # this line is only necessary for Ubuntu 17.10 and later 
sudo apt install python-numpy python-scipy
10
ответ дан 23 November 2019 в 01:46

Установка pip из apt и самого pip может привести к этому.

В моем случае я использовал пакет pip в Ubuntu для установки pipenv, который затем установил более новую копию pip. Теперь, когда моя оболочка выполняет скрипт pip 9 в Ubuntu (для проверки запуска which pip3), а мой интерпретатор Python импортирует модуль pip 10, команда pip3 завершается неудачно. Поэтому я хочу удалить один из двух.

Справедливо предположить, что у вас есть более новый пункт по причине. В этом случае вы хотите удалить старый пункт следующим образом:

sudo apt remove python3-pip

Если вы точно знаете, что все в порядке со старым пунктом и предпочитаете системный пакет, вы хотите удалить более новую:

~/.local/bin/pip3 uninstall pip

или, если не удалось

sudo /usr/local/bin/pip3 uninstall pip

1
ответ дан 23 November 2019 в 01:46

Зернышко переустановки силы работает просто великолепно для большинства пользователей как показано на этот страница GitHub:

python -m pip install --force-reinstall pip
1
ответ дан 23 November 2019 в 01:46

В то время как karel, возможно, решил Вашу "установку numpy, и scipy" проблема, что случилось с зернышком в Вашей системе не был обращен, таким образом, у Вас, вероятно, будет больше проблем с продвижением зернышка.

Смотря здесь, это, кажется, довольно общая недавняя проблема с зернышком 10 в системах Ubuntu. Можно найти работу некоторым arounds на том потоке, которые работают на Вас, но надо надеяться обновление скоро зафиксирует его.

6
ответ дан 23 November 2019 в 01:46

Ошибка найдена в зернышке 10.0.0.

В Linux необходимо изменить файл:/usr/bin/pip от:

from pip import main
if __name__ == '__main__':
    sys.exit(main())

к этому:

from pip import __main__
if __name__ == '__main__':
    sys.exit(__main__._main())
17
ответ дан 23 November 2019 в 01:46

Это работало на меня:

pip install --upgrade --user pip

install --upgrade, Я имею в виду то, что Вы пытаетесь установить.

-1
ответ дан 23 November 2019 в 01:46

Использовать python -m pip install вместо pip install

Пример:

python -m pip install --user somepackage
python3 -m pip install --user somepackage

Я начал получать эту проблему после a pip обновление:

pip install --upgrade --user pip

pip (resp. pip3) исполняемый файл обеспечивается Вашим дистрибутивом (python-pip пакет на Ubuntu 16.04).

Поэтому это не сохранено до даты с pip сам пакет, поскольку Вы обновляете зернышко и можете повредиться.

Если Вы просто используете python -m pip непосредственно, например, как в:

python -m pip install --user somepackage
python3 -m pip install --user somepackage

это проходит Ваш путь Python и находит последнюю версию зернышка и выполняет тот файл.

Это полагается на то, что тот файл является исполняемым файлом, но это - очень стандартный тип интерфейса, и поэтому менее вероятно повреждаться, чем hackier сценарий Debian.

Затем я рекомендую добавить следующие псевдонимы к Вашему .bashrc:

pip() ( python -m pip "$@" )
pip3() ( python3 -m pip "$@" )

Протестированный в Ubuntu 16.04 после обновления от pip3 9.0.1 к 18,0.

23
ответ дан 23 November 2019 в 01:46

Моя проблема закончила тем, что была несоответствием между python3.6 и 3.7. python3.6 установка вставила ссылку /usr/bin/python3 -> /usr/bin/python3.6 даже при том, что система обновила до python3.7.

sudo apt purge python-pip
sudo apt purge python3-pip
sudo apt install python3.7 --reinstall
cd /usr/bin
sudo rm python3
sudo ln -s python3.7 python3
python3 --version
pip3 --version
0
ответ дан 23 November 2019 в 01:46

У меня была та же проблема, но удаление и переустанавливает со способным, и зернышко не работало на меня.

Я видел другое решение, которое представляет простой способ восстановить путь pip3:

sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
7
ответ дан 23 November 2019 в 01:46

ввести

hash -d pip3

Это должно удалить эту ошибку

1
ответ дан 23 November 2019 в 01:46

Я столкнулся с этой проблемой после новой установки mint. У меня сработало следующее:

sudo apt install python3-distutils

Решение найдено здесь :

-1
ответ дан 15 February 2020 в 13:01

Другие вопросы по тегам:

Похожие вопросы: