Pour de la famille Ubuntu, Debian, Linux Mint utilisateurs
Merci à Anthony de l'explication ci-dessus, vous pouvez conserver votre système d'origine pip (dans /usr/bin/ et dist-packages/) et retirer le installé manuellement pip (dans ~/.local/) pour résoudre le conflit:
$ python3 -m pip uninstall pip
Ubuntu/Debian pip v8.1.1 (16.04) à partir de python3-pip
paquet debian (voir$ pip3 -V
) montre les mêmes résultats de recherche que les derniers pip v10.0.1, et installe les derniers modules de PyPI l'amende juste. Il a un travail pip
commande (déjà dans le $PATH), plus le gentil --user
option patché par défaut depuis 2016. En regardant pip notes de version, les versions les plus récentes sont pour la plupart au sujet de cas d'utilisation de corrections de bugs et de nouvelles fonctionnalités, donc pas tout le monde a à précipiter la mise à niveau de pep pour l'instant. Et la nouvelle pip 10 peut être déployé à Python virtualenvs, de toute façon.
Mais indépendamment de pips, votre système d'exploitation permet d'installer rapidement des communes des modules Python (y compris numpy) avec APT, sans la nécessité pour le pep, par exemple:
$ sudo apt install python3-numpy python3-scipy
(avec système de dépendances)
$ sudo apt install python3-pip
(Debian-patché pip, un peu vieux, mais il n'a pas d'importance)
Rapide apt rappel de la syntaxe (voir man apt
pour les détails):
$ sudo apt update
(pour resynchroniser Ubuntu fichiers d'index à partir de la mise à jour des sources)
$ apt search <python-package-name>
(texte intégral de recherche sur tous les paquets disponibles)
$ apt show <python-package-name>
(affiche le programme détaillé de la description)
$ sudo apt install <python-package-name>
Les noms de paquets avec le préfixe python-
sont pour Python 2; et avec le préfixe python3-
sont pour Python 3 (ex: python3-pandas). Il y a des milliers, et ils subissent des tests d'intégration au sein de Debian et Ubuntu. Sauf si vous cherchez à installer à chaque niveau de l'utilisateur (pip install --user
option) ou dans le virtualenv/venv, apt pourrait être ce dont vous avez besoin. Ces paquets sont accessibles à partir de virtuel envs trop, comme virtualenv sera gracieusement tomber en arrière à l'aide du système libs sur l'importation si votre envs n'ont pas donné des copies des modules.
Votre custom-installé (avec le pip --user
) par utilisateur modules en ~/.local/lib
va se substituer à eux aussi.
Remarque, puisque c'est un système à l'échelle de l'installation, vous feriez rarement besoin de les enlever (il faut être attentif au sujet de dépendances OS). C'est pratique pour les paquets avec de nombreuses dépendances (comme avec ou scipy matplotlib), APT permettra de garder une trace et de fournir tous les système libs et C extensions, tandis qu'avec le pip vous avez pas de telles garanties.
En fait, à l'échelle du système les paquets Python (contrairement à par utilisateur, la maison dir niveau, ou moins), Ubuntu s'attend à l'aide du gestionnaire de paquets APT (plutôt que d' sudo pip
) pour éviter de casser l'OS: sudo pip3
cible le même /usr/lib/python3/dist-packages
répertoire où APT magasins OS-sensibles modules. Récente de Debian/Ubuntu rejets dépendent fortement de Python 3, de sorte que son pré-installé les modules sont gérés par apt
et ne devrait pas être modifié.
Donc, si vous utilisez pip3 install
de commande, veuillez vous assurer qu'il fonctionne dans un virtuel isolé environnement de dev, comme avec virtualenv (sudo apt install python3-virtualenv
), ou avec Python3 intégré (-m venv
), ou au niveau de l'utilisateur (--user
pip option, par défaut dans Ubuntu fourni pip depuis 2016), mais pas à l'échelle du système (jamais sudo pip3
!), parce que pip interfère avec le fonctionnement du gestionnaire de paquet APT et peut affecter Ubuntu OS composants lorsqu'un système utilisé module python est modifié de façon inattendue. Bonne chance!
P. S. Tous les est au-dessus de l '"idéal" de la solution (Debian/Ubuntu façon).
Si vous avez toujours souhaitez utiliser la nouvelle pip3 v10 exclusivement, il y a 3 solutions:
- il suffit d'ouvrir une nouvelle session bash (un nouveau terminal de l'onglet ou de type
bash
) - et pip3 v10 devient disponible (voir pip3 -V
). debian pip3 v8 reste installé mais est cassé; ou
- la commande
$ hash -d pip3 && pip3 -V
pour actualiser pip3 chemin d'accès dans le $PATH. debian pip3 v8 reste installé mais est cassé; ou
- la commande
$ sudo apt remove python3-pip && hash -d pip3
pour désinstaller debian pip3 v8 complètement, en faveur de votre nouveau pip3 v10.
Remarque: Vous aurez toujours besoin d'ajouter --user
indicateur pour toute non-debian-fourni pip, sauf si vous êtes dans un virtualenv! (il déploie les paquets python pour ~/.local/
, par défaut dans debian/ubuntu-fourni python3-pip et python-pip depuis 2016). Votre utilisation de pip à 10 à l'échelle du système, en dehors de virtualenv, n'est pas vraiment pris en charge par Ubuntu/Debian. Jamais sudo pip3
!
Plus de détails:
https://github.com/pypa/pip/issues/5221#issuecomment-382069604
https://github.com/pypa/pip/issues/5240#issuecomment-381673100