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