Для користувачів сімейства 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