Ошибка после обновления пипа: невозможно импортировать имя 'main'

467

Всякий раз, когда я пытаюсь установить какой-либо пакет, используя pip, я получаю эту ошибку импорта:

guru@guru-notebook:~$ pip3 install numpy
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'


guru@guru-notebook:~$ cat `which pip3`
#!/usr/bin/python3
# GENERATED BY DEBIAN

import sys

# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.
from pip import main
if __name__ == '__main__':
    sys.exit(main())

Раньше все работало нормально, я не уверен, почему выдает эту ошибку. Я искал об этой ошибке, но не могу найти ничего, чтобы исправить это.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация, я обновлю свой вопрос.

G_p
источник
1
Дополнительное обсуждение по этой ссылке .
Диагон
7
У меня была такая же проблема, потому что я использовал pip install --upgrade pipдля обновления pip на сервере, где у меня нет прав администратора. Удаление pip с помощью python -m pip uninstall pipрешило мою проблему.
Foad
Ответы мне не помогли. Это была моя проблема: github.com/pypa/pipenv/issues/2095
Этьен

Ответы:

846

Вы, должно быть, непреднамеренно обновили свой системный пункт (вероятно, через что-то вроде sudo pip install pip --upgrade)

Пип 10.х определяет, где находятся его внутренние органы. Команда, pip3которую вы видите, предоставлена ​​вашим сопровождающим пакета (предположительно, основана на Debian?) И не является файлом, управляемым pip.

Вы можете прочитать больше об этом на трекере проблем pip

Вы, вероятно, захотите не обновлять ваш системный пип, а вместо этого использовать virtualenv.

Чтобы восстановить pip3двоичный файл, вам нужно sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall.

Если вы хотите продолжить в «неподдерживаемой территории» (Обновление системы пакетов за пределы менеджера пакетов), вы , вероятно , можете сойти с руками python3 -m pip ...вместо pip3.

Энтони Соттиль
источник
28
sudo apt install python3-pip --reinstallне устранил проблему, однако я могу установить пакет используя python3 -m pip. Спасибо за вашу помощь. Я отмечаю это как принятый.
g_p
2
@g_p обновил указания "fixup" - только что проверил их в докере (я должен был это сделать в первый раз!)
Энтони Соттил,
6
Мне нужно использовать команду 'python -m pip uninstall pip', поскольку 'sudo pip uninstall pip' выдает ошибку, аналогичную первоначальному вопросу
Mz A
41
Спасибо! Это помогло! Используйте sudo python -m pip uninstall pip && sudo apt install python-pip --reinstallдля python2!
Бармалей
1
Работает для Ubuntu на Windows. Решение - это то, что @Barmaley предлагает для python2 (интерпретатор python по умолчанию).
jdhao
111

Мы можем устранить ошибку, изменив файл pip.

Проверьте расположение файла:

$ which pip

путь -> / usr / bin / pip

Перейдите в это место ( / usr / bin / pip ) и откройте терминал

Войти: $ sudo nano pip

Ты можешь видеть:

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

Изменить на:

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

затем Ctrl + O записать изменения и выйти

Надеюсь, что это будет делать!

Виджай Атхитья
источник
1
Внесение этих изменений не решило проблему, но вернуло ее к исходному тексту. ¯_ (ツ) _ / ¯
Дэвид
2
Я попробовал это, но получилAttributeError: module 'pip.__main__' has no attribute 'main'
dnnagy
4
Удостоверьтесь, что вы написали _main (), а не main ()
Виджей Атхитя
2
в последней версии pip3, то main()перемещается pip._internal. Оператор импорта должен быть изменен наfrom pip._internal import main
Yossarian42
2
Работал как шарм! Спасибо
Махеш Нанаяккара
69

Для семейства Ubuntu, Debian, Linux Mint

Благодаря приведенному выше объяснению Энтони вы можете сохранить исходный системный пип (в / usr / bin / и dist-packages /) и удалить установленный вручную пип (в ~ / .local /) для разрешения конфликта:

$ python3 -m pip uninstall pip

Ubuntu / Debian pip v8.1.1 (16.04) из python3-pipпакета debian (см. $ pip3 -V) Показывает те же результаты поиска, что и последний pip v10.0.1, и прекрасно устанавливает последние модули из PyPI. Он имеет рабочую pipкоманду (уже в $ PATH), плюс хороший --userвариант заплаток , по умолчанию начиная с 2016 года Глядя на примечания к выпуску семечкового , новые версии в основном о прецедентах конкретных исправлений ошибок и некоторых новых функциях, поэтому не каждый должен спешить с обновлением пипа. И в любом случае новый pip 10 может быть развернут в Python virtualenvs.

Но независимо от пипсов, ваша ОС позволяет быстро устанавливать обычные модули Python (включая numpy) с APT, без необходимости в пипсах, например:
$ sudo apt install python3-numpy python3-scipy(с системными зависимостями)
$ sudo apt install python3-pip(патч в Debian, немного старше, но это не имеет значения)

Быстрое напоминание синтаксиса (см. man aptПодробности):
$ sudo apt update(для повторной синхронизации файлов индекса пакетов Ubuntu из актуальных источников)
$ apt search <python-package-name> (полнотекстовый поиск по всем доступным пакетам)
$ apt show <python-package-name>(отображает подробное описание пакета)
$ sudo apt install <python-package-name>

Имена пакетов с префиксом python-предназначены для Python 2; и с префиксом python3-- для Python 3 (например, python3-pandas). Их тысячи, и они проходят тестирование интеграции в Debian и Ubuntu. Если вы не хотите устанавливать на уровне пользователя ( pip install --userопция) или в virtualenv / venv, apt может быть тем, что вам нужно. Эти системные пакеты также доступны из виртуальных envs, поскольку virtualenv будет изящно прибегать к использованию системных библиотек при импорте, если ваши envs не предоставили копии модулей. Ваши пользовательские (с pip --user) пользовательские модули также ~/.local/libбудут переопределять их.

Обратите внимание, поскольку это общесистемная установка, вам редко придется их удалять (нужно помнить о зависимостях ОС). Это удобно для пакетов со многими системными зависимостями (например, с scipy или matplotlib), поскольку APT будет отслеживать и предоставлять все необходимые системные библиотеки и расширения C, тогда как с pip у вас нет таких гарантий .

На самом деле, для общесистемных пакетов Python (в отличие от уровня пользователя, уровня домашнего каталога или ниже) Ubuntu ожидает использовать менеджер пакетов APT (а не sudo pip), чтобы избежать взлома ОС: sudo pip3предназначается для того же /usr/lib/python3/dist-packagesкаталога, где APT хранит ОС модули. Последние выпуски Debian / Ubuntu сильно зависят от Python 3, поэтому его предустановленные модули управляются aptи не должны изменяться.

Поэтому, если вы используете pip3 installкоманду, убедитесь, что она работает в изолированной виртуальной среде разработки, например, с помощью virtualenv ( sudo apt install python3-virtualenv) или встроенной функции Python3 ( -m venv), или на уровне пользователя ( --userопция pip, по умолчанию в Ubuntu-предоставляемой) pip с 2016 года), но не для всей системы (никогда sudo pip3!), потому что pip мешает работе диспетчера пакетов APT и может повлиять на компоненты ОС Ubuntu, когда системный модуль python неожиданно изменяется. Удачи!


P. S. Все вышеизложенное относится к «идеальному» решению (путь Debian / Ubuntu).

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

  • просто откройте новый сеанс bash (новую вкладку терминала или введите bash) - и pip3 v10 станет доступным (см. pip3 -V). Debian pip3 v8 остается установленным, но не работает; или
  • команда $ hash -d pip3 && pip3 -V для обновления пути pip3 в $ PATH. Debian pip3 v8 остается установленным, но не работает; или
  • Команда $ sudo apt remove python3-pip && hash -d pip3для полного удаления Debian pip3 v8 в пользу вашего нового pip3 v10.

Примечание: вам всегда нужно будет добавлять --userфлаг к любому пункту, не предоставленному Debian, если вы не в virtualenv! (он развертывает пакеты python в ~/.local/, по умолчанию в python3-pip и python-pip, предоставленных debian / ubuntu с 2016 года). Использование pip 10 для всей системы, кроме virtualenv, не поддерживается Ubuntu / Debian. Никогда sudo pip3!

Дополнительная информация:
https://github.com/pypa/pip/issues/5221#issuecomment-382069604
https://github.com/pypa/pip/issues/5240#issuecomment-381673100

Алекс С.
источник
Можете ли вы помочь мне понять, почему установка обновленной версии pip локально с --user, то есть без sudo, влияет на мою способность запускать установленный apt pip? Я думал, что оба будут сосуществовать. Но этого GIST показывает склонный установлен один перерывы после я python3 -m pip install --user --upgrade pip. Я не ищу решения - мне просто искренне любопытно понять, что здесь происходит.
Джордж Хокинс
1
@ Джордж Это происходит из-за несоответствия между библиотеками pip и их обертками, которые их импортируют. Попытка немедленного запуска системной команды pip (без применения какого-либо решения ) все равно вызовет установленную apt системную версию сценария оболочки pip, /usr/bin/pip3а не ту, которая установлена ​​как --user( ~/.local/bin/pip*) в соответствии с системой $ PATH операционной системы, которая по-прежнему настроена для запуска системная версия обертки, но не ее библиотеки ..
Alex C.
2
@George Это потому, что теперь установлен более новый пакет pip, ~/.local/lib/python3.?/site-packages/pipкоторый имеет приоритет над системным и относительным в относительном импорте Python (локальный пользовательский сайт имеет приоритет над глобальными библиотеками). И поскольку более старая обертка пытается from pip import main, чем from pip._internalее __main__класс, сравнивать с более новой версией пакета pip, команда pip из gist завершается ошибкой ImportError: cannot import name 'main'. Таким образом, оба пипса могут сосуществовать (на диске), но функциональность оригинальной системы один будет «нарушена» ..
Алекс С.
+1 за --user. pip install --userэто то, что сделал это для меня. (У меня есть Python 2.7, Python 3.6 и Python 3.7, все они установлены на Ubuntu 18.04 LTS.)
Стивен Дж Тагги,
46

решено только в один шаг.

Я тоже сталкивался с этой проблемой, но это можно решить с помощью одной команды, не беспокоясь об этом и не теряя времени, и я пробовал его на нескольких системах, это самое чистое решение для этой проблемы. И это:

Для Python3: - sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall.

Таким образом, вы можете просто установить пакеты, используя pip3. проверить использование pip3 --version.

Для более старых версий, используйте: sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall.

Теперь вы можете просто устанавливать пакеты с помощью pip. проверить использование pip --version.

Сакет
источник
31

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

Пример:

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

pip(Соотв. pip3) Исполняемым предоставляется вашим дистрибутивом ( python-pipпакет на Ubuntu 16.04) и находится в /usr/bin/pip.

Поэтому он не обновляется с pipсамим пакетом при обновлении pip и может сломаться.

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

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

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

Он основан на том факте, что файл является исполняемым import, но это очень стандартный тип интерфейса, и поэтому он менее подвержен поломкам, чем хакерский скрипт Debian.

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

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

/usr/bin/pip3Файл Ubuntu 18.04 делает:

from pip import main

и предположительно mainбыл удален изpip в какой-то момент, который сломал вещи.

Разрывная фиксация в пипсах выглядит следующим образом: 95bcf8c5f6394298035a7332c441868f3b0169f4 «Переместить все внутренние API в pip._internal», которая вошла в пип 18.0.

Протестировано в Ubuntu 16.04 после обновления с pip39.0.1 до 18.0.

pyenv

В конечном счете, однако, для серьезной разработки Python я бы порекомендовал вам установить свой собственный локальный Python с помощью pyenv + virtualenv, что также поможет обойти эту ошибку Ubuntu: /ubuntu/682869/how-do-i- установить-а-другую-питон-версию- с использованием-APT-GET / 1195153 # 1195153

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
источник
3
после 5 часов поиска это сработало для меня. Я могу доставить тебе цветок, если ты отправишь мне свой адрес. благодарю вас.
cagri
18

Вы можете решить эту проблему, переустановив pip.

Используйте одну из следующих команд командной строки для переустановки pip:

python2:

python -m pip uninstall pip && sudo apt install python-pip --reinstall

python3:

 python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
Codemaker
источник
16

Проверьте, кэшировался ли pip по другому пути, для этого вызовите $ which pip и убедитесь, что путь отличается от того, который был предложен в ошибке, если это так:

$ hash -r

Когда кеш очистится, pip снова заработает. ссылка: http://cheng.logdown.com/posts/2015/06/14/-usr-bin-pip-no-such-file-or-directory

Sr.PEDRO
источник
8

Я работаю в системе, где у меня есть sudo apt, но нет sudo pip. (И нет доступа.) Я попал в ту же ситуацию, следуя совету из пипа:

Вы используете версию 8.1.1 pip, однако доступна 18.0. Вы должны рассмотреть возможность обновления с помощью команды 'pip install --upgrade pip'.

Ни одно из других исправлений не помогло мне, потому что у меня недостаточно прав администратора. Тем не менее, некоторые вещи застряли со мной от чтения этого:

  • Я не должен был этого делать. Конечно, Пип сказал мне. Лгал.
  • Использование --user решает множество проблем, фокусируясь только на пользовательском каталоге.

Итак, я нашел эту командную строку для работы, чтобы вернуть меня туда, где я был. Если вы использовали версию, отличную от 8.1.1, вы, очевидно, захотите изменить эту часть строки.

python -m pip install --force-reinstall pip==8.1.1 --user

Это единственное, что сработало для меня, но сработало отлично!

Скотт Мермельштейн
источник
7

Восстановить с помощью python3 -m pip install --user pip==9.0.1(или версии, которая работала)

Claire
источник
5

То же самое случилось со мной на Pixelbook с использованием нового LXC (strech). Это решение очень похоже на принятое, с одной тонкой разницей, которая для меня исправлена.

sudo python3 -m pip install --upgrade pip

Это изменило версию, и теперь она работает, как и ожидалось.

Я нашел это здесь ... Python.org: Убедитесь, что пип актуален

fliptopbox
источник
4

Я столкнулся с той же проблемой в моей системе Ubuntu 16.04. Мне удалось это исправить, переустановив pip с помощью следующей команды:

curl https://bootstrap.pypa.io/get-pip.py | sudo python3

jkjung13
источник
Преимущество заключается в том, что вы устанавливаете его из исходного кода, и ничто из вышеперечисленного не работало на чистом пустом Debian 9 (от моего поставщика выделенных серверов)
Peter Rosemann
керлинг в интернет для супер пользователя, что может пойти не так!
Sum1sAdmin
3

Команды выше не работали для меня, но они были очень полезны:

sudo apt purge python3-pip
sudo rm -rf '/usr/lib/python3/dist-packages/pip'  
sudo apt install python3-pip
cd
cd .local/lib/python3/site-packages
sudo rm -rf pip*  
cd
cd .local/lib/python3.5/site-packages
sudo rm -rf pip*  
sudo pip3 install jupyter
Пьеро
источник
2

В Ubuntu 18.04.1 Bionic Beaver вам нужно выйти и снова войти (перезапускать не обязательно), чтобы получить подходящую среду.

$ sudo apt install python-pip

$ pip --version
pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ pip install --upgrade pip

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

$ exit
<login>

$ pip --version
pip 18.1 from /home/test/.local/lib/python2.7/site-packages/pip (python 2.7)
Джефф Хой
источник
1

Я использую sudo apt remove python3-pip тогда pipработает.

 ~ sudo pip install pip --upgrade
[sudo] password for sen: 
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'
  ~ sudo apt remove python3-pip   
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libexpat1-dev libpython3-dev libpython3.5-dev python-pip-whl python3-dev python3-wheel
  python3.5-dev
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  python3-pip
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 569 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 215769 files and directories currently installed.)
Removing python3-pip (8.1.1-2ubuntu0.4) ...
Processing triggers for man-db (2.7.5-1) ...
  ~ pip

Usage:   
  pip <command> [options]
Джим Габриэль
источник
1
Это потому, что pipдля Python 2. OP использует pip3версию Python 3 pip, которую вы только что удалили. Эти два отличны и не взаимозаменяемы.
Нейнштейн
1

Для Python версии 2.7 @Anthony решение отлично работает, изменив python3 на python следующим образом:

sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall
ewalel
источник
1

Что сработало для меня, чтобы исправить ошибку с использованием pip3было:

sudo cp -v /usr/local/bin/pip3 /usr/bin/pip3

Все работает:

 demon@UbuntuHP:~$ pip -V
 pip 10.0.1 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)

 demon@UbuntuHP:~$ pip2 -V
 pip 10.0.1 from /home/demon/.local/lib/python2.7/site-packages/pip (python 2.7)

 demon@UbuntuHP:~$ pip3 -V
 pip 10.0.1 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)

Может быть, новая версия pip 10.0.1 не обновляет бинарный файл в / usr / bin? (что кажется не так)

РЕДАКТИРОВАТЬ: та же проблема возникает в Ubuntu 18.04. Лучшее решение , которое я нашел это символическая ссылка ПГИ бинарники от /home/<user/.local/binдо /usr/local/binили /usr/bin( в зависимости от ваших предпочтений), следующим образом :

ln -sv /home/<user>/.local/bin/pip /usr/local/bin/pip
ln -sv /home/<user>/.local/bin/pip2 /usr/local/bin/pip2
ln -sv /home/<user>/.local/bin/pip2.7 /usr/local/bin/pip2.7
ln -sv /home/<user>/.local/bin/pip3 /usr/local/bin/pip3
ln -sv /home/<user>/.local/bin/pip3.6 /usr/local/bin/pip3.6

ПРИМЕЧАНИЕ: замените <user> текущим работающим пользователем

Связанные версии (последние) находятся в:

Версия 3.6:

/home/demon/.local/lib/python3.6/site-packages/pip (python 3.6)

Версия 2.7:

/home/demon/.local/lib/python2.7/site-packages/pip (python 2.7)

cryptoboy
источник
Это исправило мою проблему. Других ответов нет.
Амин Хусни
1
Вы действительно не должны связываться с файлами напрямую /usr/bin. И вы PATHне правы, если /usr/local/binне раньше /usr/bin.
tripleee
Двоичный файл пипса не существует в /usr/local/bin. Это только в /home/<user>/.local/binи / или /home/<user>/.local/lib/python<version>/site-packages/pipв новых версиях (v10.0 + не обновлять двоичный файл в /usr/bin). Следовательно, причина, по которой копия или символическая ссылка двоичного файла должна быть создана в /usr/binили /usr/local/bin(в зависимости от предпочтений пользователя), чтобы pip мог запускаться глобально из командной строки.
cryptoboy
Двоичные файлы каталога существуют и должны быть связаны / скопированы из: demon @ Bionic18: ~ / .local / bin $ ls pip pip2 pip2.7 pip3 pip3.6 По pipумолчанию в двоичном файле установлена ​​последняя версия, установленная в системе
cryptoboy
0

Трюк и работает тоже

sudo -H pip install lxml

Tejas Tank
источник
0

У меня была такая же ошибка, но python -m pipона все еще работала, поэтому я исправил ее с помощью ядерной опции sudo python -m pip install --upgrade pip. Он сделал это для меня.

Серджиу
источник
0

Для чего это стоит, у меня была проблема с pip(нет pip2или pip3):

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

$ pip2 -V
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ pip3 -V
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

Каким-то образом (я не могу вспомнить, как) у меня был установлен Python вещи в моем ~/.localкаталоге. После того как я удалил каталог pip оттуда, pipснова начал работать.

$ rm -rf /home/precor/.local/lib/python2.7/site-packages/pip
$ pip -V
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
Майкл Берр
источник
0

Что-то не так с пакетами, когда он генерирует файл / usr / bin / pip, вы должны изменить импорт:

from pip import main

в

from pip._internal import main

Это решает проблему, я не уверен, почему это произвело, но это говорит что-то в следующей проблеме:

После обновления pip 10 на pyenv "ImportError: невозможно импортировать имя 'main'"

Cam T
источник
0

Вы можете попробовать это:

sudo ln -sf $( type -P pip ) /usr/bin/pip
Виттал Сароде
источник
3
Хотя этот код может ответить на вопрос, было бы лучше включить некоторый контекст, объясняющий, как он работает и когда его использовать. Ответы только для кода бесполезны в долгосрочной перспективе.
Джулио Качинь
0

Я также столкнулся с этой проблемой, когда хотел обновить систему pip pip3с 9.0.1 до 19.2.3.

После бега pip3 install --upgrade pip, pipверсия становится 19.2.3. Но main()был перенесен в pip._internalпоследней версии, которая оставляетpip3 сломанной.

Так в файле /usr/bin/pip3 заменить line 9: from pip import mainна from pip._internal import main. Проблема будет исправлена, работает так же дляpython2-pip . (Проверено на дистрибутиве Ubuntu 18.04)

По @Vincent H. в ответ

Yossarian42
источник
0

Пожалуйста, выполните следующие команды, чтобы исправить. После запуска python3 -m pip install --upgrade pip, пожалуйста, выполните следующую команду.

hash -r pip

Источник: https://github.com/pypa/pip/issues/5221

SuperNova
источник
0

Вы можете просто исправить пути pip и pip3, используя update-alternatives

Первое, что вы должны проверить, это ваш текущий $PATH прогон echo $PATHи посмотреть, вы можете найти, /usr/local/binгде обычно находятся pip3 и pip

есть изменения, которые ваша система ищет здесь, /bin/pipи /bin/pip3 поэтому я скажу исправить PATH, добавив к вашему~/.bash_profile файл , поэтому он сохраняется

export PATH=$PATH:/usr/local/bin а затем проверьте, исправлено ли это which pipиwhich pip3

если нет, то используйте, update-alternativesчтобы исправить это наконец

update-alternatives --install /bin/pip3 pip3 /usr/local/bin/pip3 30

и если вы хотите указать pip на pip3, то

update-alternatives --install /bin/pip pip /usr/local/bin/pip3 30
uberrebu
источник
0

Это сработало для меня!

hash -r pip # or hash -d pip

Теперь удалите установленную версию pip и переустановите ее, используя следующие команды.

python -m pip uninstall pip  # sudo
sudo apt install --reinstall python-pip

Если пункт сломан, используйте:

python -m pip install --force-reinstall pip

Надеюсь, поможет!

Эбин Захария
источник
-1

импортировать main из pip._internal

from pip._internal import main

Изменить код от

sudo nano /usr/bin/pip3
Ахилеш Н.С.
источник
Можете ли вы отредактировать ответ и указать его лучше? Не очень понятно, как редактировать файл /usr/bin/pip3...
М. Вольф,
-1

Как сказал @cryptoboy - проверьте, какую версию pip / python вы установили

 demon@UbuntuHP:~$ pip -V
 demon@UbuntuHP:~$ pip2 -V
 demon@UbuntuHP:~$ pip3 -V

а затем проверьте наличие ненужных библиотек в папке .local / lib /.

Я выполнял резервное копирование настроек при переходе на более новую версию Kubuntu, и в моей домашней директории была папка .local / lib / python2.7 /. Установленный питон 3.6. Я только что удалил старую папку и теперь все отлично работает!

Vergil333
источник
-1

В Debian вам нужно сначала обновить apt ....

sudo apt-get update -qq
sudo apt-get install python-pip -qq
sudo pip install pip --upgrade --quiet
sudo pip2 install virtualenv --quiet

Если вы пропустите 'sudo apt-get update -qq', ваш пункт будет поврежден и отобразит ошибку «не удается найти основную».

Пол Кенджора
источник
-1

Эта ошибка может быть разрешающей. Итак, протестируйте выполнение команды с флагом -H :

sudo -H pip3 install numpy
Мохсен Абаси
источник
вопрос очень ясно говорит, что ImportError не ошибка разрешений
Энтони Соттил
-1

Используйте следующую команду перед выполнением любой команды pip

hash -d pip

Это будет работать

Мухаммед Адиль
источник
1
Не могли бы вы уточнить, как это поможет / + удалить любые снисходительные комментарии?
эльф