Для семейства 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