Para la familia Ubuntu, Debian, usuarios de Linux Mint
Gracias a la explicación anterior de Anthony , puede conservar su pip original del sistema (en / usr / bin / y dist-packages /) y eliminar el pip instalado manualmente (en ~ / .local /) para resolver el conflicto:
$ python3 -m pip uninstall pip
Ubuntu / Debian pip v8.1.1 (16.04) del python3-pip
paquete debian (ver $ pip3 -V
) muestra los mismos resultados de búsqueda que el último pip v10.0.1, e instala los últimos módulos de PyPI muy bien. Tiene un pip
comando de trabajo (ya en $ PATH), además de la buena --user
opción parcheada por defecto desde 2016. Mirando las notas de lanzamiento de pip , las versiones más nuevas tratan principalmente de correcciones de errores específicas de casos de uso y ciertas nuevas características, por lo que no todo el mundo tiene que apresurarse a actualizar pip por el momento. Y el nuevo pip 10 se puede implementar en Python virtualenvs, de todos modos.
Pero independientemente de los pips, su sistema operativo permite instalar rápidamente módulos comunes de Python (incluidos numpy) con APT, sin necesidad de pip, por ejemplo:
$ sudo apt install python3-numpy python3-scipy
(con dependencias del sistema)
$ sudo apt install python3-pip
(pip parcheado en Debian, un poco más antiguo pero no importa)
Recordatorio rápido de la sintaxis de apt (consulte los man apt
detalles):
$ sudo apt update
(para volver a sincronizar los archivos de índice de paquetes de Ubuntu desde fuentes actualizadas)
$ apt search <python-package-name>
(búsqueda de texto completo en todos los paquetes disponibles)
$ apt show <python-package-name>
(muestra la descripción detallada del paquete)
$ sudo apt install <python-package-name>
Los nombres de los paquetes con el prefijo python-
son para Python 2; y con el prefijo python3-
son para Python 3 (por ejemplo, python3-pandas). Hay miles, y se someten a pruebas de integración dentro de Debian y Ubuntu. A menos que busque instalar a nivel de usuario ( pip install --user
opción) o dentro de virtualenv / venv, apt podría ser lo que necesita. También se puede acceder a estos paquetes del sistema desde entornos virtuales, ya que virtualenv recurrirá con gracia al uso de las bibliotecas del sistema en la importación si sus entornos no han proporcionado copias de los módulos. Los --user
módulos por usuario instalados a medida (con pip ) ~/.local/lib
también los anularán.
Tenga en cuenta que, dado que se trata de una instalación en todo el sistema , rara vez necesitará eliminarlos (debe tener en cuenta las dependencias del sistema operativo). Esto es conveniente para paquetes con muchas dependencias del sistema (como scipy o matplotlib), ya que APT realizará un seguimiento y proporcionará todas las bibliotecas del sistema y extensiones C requeridas, mientras que con pip no tiene tales garantías .
De hecho, para los paquetes de Python en todo el sistema (en contraste con el nivel de directorio de inicio o inferior por usuario), Ubuntu espera usar el administrador de paquetes APT (en lugar de sudo pip
) para evitar romper el sistema operativo: sudo pip3
apunta al mismo /usr/lib/python3/dist-packages
directorio donde APT almacena el sistema operativo -módulos sensibles. Las versiones recientes de Debian / Ubuntu dependen en gran medida de Python 3, por lo que sus módulos preinstalados son administrados por apt
y no deben cambiarse.
Entonces, si usa el pip3 install
comando, asegúrese de que se ejecute en un entorno de desarrollo virtual aislado, como virtualenv ( sudo apt install python3-virtualenv
), o con Python3 incorporado ( -m venv
), o en un nivel por usuario ( --user
opción pip, predeterminada en Ubuntu) pip desde 2016), pero no en todo el sistema ( sudo pip3
¡ nunca !), porque pip interfiere con la operación del administrador de paquetes APT y puede afectar los componentes del sistema operativo Ubuntu cuando un módulo python utilizado por el sistema se cambia inesperadamente. ¡Buena suerte!
P. S. Todo lo anterior es para la solución 'ideal' (estilo Debian / Ubuntu).
Si aún desea utilizar el nuevo pip3 v10 exclusivamente, hay 3 soluciones rápidas:
- simplemente abra una nueva sesión de bash (una nueva pestaña de terminal o tipo
bash
), y pip3 v10 estará disponible (consulte pip3 -V
). el pip3 v8 de debian permanece instalado pero está roto; o
- el comando
$ hash -d pip3 && pip3 -V
para actualizar el nombre de ruta pip3 en $ PATH. el pip3 v8 de debian permanece instalado pero está roto; o
- El comando
$ sudo apt remove python3-pip && hash -d pip3
para desinstalar Debian's pip3 v8 completamente, a favor de su nuevo pip3 v10.
Nota: ¡Siempre tendrá que agregar una --user
marca a cualquier pip no proporcionado por Debian, a menos que esté en un virtualenv! (implementa paquetes de python en ~/.local/
, por defecto, en python3-pip y python-pip proporcionados por debian / ubuntu desde 2016). Ubuntu / Debian no admite realmente el uso de pip 10 en todo el sistema, fuera de virtualenv. Nunca sudo pip3
!
Más detalles:
https://github.com/pypa/pip/issues/5221#issuecomment-382069604
https://github.com/pypa/pip/issues/5240#issuecomment-381673100