Для користувачів сімейства Ubuntu, Debian, Linux Mint
Завдяки поясненню Ентоні вище , ви можете зберегти свій початковий системний піп (in / usr / bin / та dist-пакети /) та видалити встановлений вручну pip (у ~ / .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. І новий pip 10 так чи інакше можна розгорнути на Python virtualenvs.
Але незалежно від піпсов, ваша ОС дозволяє швидко встановлювати звичайні модулі Python (включаючи numpy) з APT, без необхідності в pip, наприклад:
$ sudo apt install python3-numpy python3-scipy
(із системними залежностями)
$ sudo apt install python3-pip
(Depp-patched pip, трохи старше, але це не має значення)
Швидке нагадування про синтаксис (див. 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-панди). Їх тисячі, і вони проходять інтеграційні тестування в Debian і Ubuntu. Якщо ви не прагнете встановити на рівні користувача ( pip install --user
опція) або в межах virtualenv / venv, apt може бути тим, що вам потрібно. Ці системні пакети доступні і з віртуальних envs, оскільки virtualenv витончено перейде до використання системних бібліотек для імпорту, якщо ваші ENV не мають копій модулів. Ваші встановлені на замовлення (з піп --user
) модулями для кожного користувача в ~/.local/lib
них також перекриють.
Зверніть увагу, оскільки це загальносистемна установка, вам рідко потрібно буде їх видаляти (потрібно пам’ятати про залежності ОС). Це зручно для пакетів із багатьма системними залежностями (наприклад, з scipy чи matplotlib), оскільки APT буде відслідковувати та надавати всі необхідні системні libs та розширення C, тоді як з pip у вас немає таких гарантій .
Насправді, для загальносистемних пакетів Python (на відміну від користувача, рівня домашнього dir або нижче) 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 OS, коли несподівано змінений використовуваний системою модуль python. Удачі!
P. S. Все вищезазначене - для «ідеального» рішення (спосіб Debian / Ubuntu).
Якщо ви все ще хочете ексклюзивно використовувати новий pip3 v10, є 3 швидких способи вирішення:
- просто відкрийте новий сеанс bash (нова вкладка або термінал
bash
) - і pip3 v10 стане доступним (див. pip3 -V
). pip3 v8 debian залишається встановленим, але порушено; або
- команда
$ hash -d pip3 && pip3 -V
оновити ім'я шляху pip3 в $ PATH. pip3 v8 debian залишається встановленим, але порушено; або
- команда
$ sudo apt remove python3-pip && hash -d pip3
повністю видалити pip3 v8 debian, на користь вашого нового pip3 v10.
Примітка: Вам завжди потрібно буде додати --user
прапор до будь-якого непідтримуваного файлу, якщо ви не знаходитесь у virtualenv! (він розгортає пакети python до ~/.local/
, за замовчуванням у наданих debian / ubuntu python3-pip та python-pip з 2016 року). Ваше використання системи pip 10, за межами virtualenv, не дуже підтримується Ubuntu / Debian. Ніколи sudo pip3
!
Детальніша інформація:
https://github.com/pypa/pip/isissue/5221#issuecomment-382069604
https://github.com/pypa/pip/isissue/5240#issuecomment-381673100