Buscar..


Introducción

pip es el gestor de paquetes más utilizado para el Índice de paquetes de Python, instalado de forma predeterminada con las versiones recientes de Python.

Sintaxis

  • pip <comando> [opciones] donde <comando> es uno de los siguientes:
    • instalar
      • Instalar paquetes
    • desinstalar
      • Desinstalar paquetes
    • congelar
      • Salida de paquetes instalados en formato de requerimientos.
    • lista
      • Listar paquetes instalados
    • espectáculo
      • Mostrar información sobre los paquetes instalados
    • buscar
      • Buscar PyPI para paquetes
    • rueda
      • Construye ruedas a partir de tus requerimientos.
    • cremallera
      • Zip paquetes individuales (obsoletos)
    • abrir la cremallera
      • Descomprimir paquetes individuales (obsoletos)
    • haz
      • Crear pybundles (en desuso)
    • ayuda
      • Mostrar ayuda para comandos

Observaciones

A veces, pip realizará una compilación manual de código nativo. En Linux, Python elegirá automáticamente un compilador de C disponible en su sistema. Consulte la tabla a continuación para obtener la versión requerida de Visual Studio / Visual C ++ en Windows (las versiones más recientes no funcionarán).

Versión Python Versión de Visual Studio Versión Visual C ++
2.6 - 3.2 Visual Studio 2008 Visual C ++ 9.0
3.3 - 3.4 Visual Studio 2010 Visual C ++ 10.0
3.5 Visual Studio 2015 Visual C ++ 14.0

Fuente: wiki.python.org

Instalar paquetes

Para instalar la última versión de un paquete llamado SomePackage :

$ pip install SomePackage

Para instalar una versión específica de un paquete:

$ pip install SomePackage==1.0.4

Para especificar una versión mínima para instalar para un paquete:

$ pip install SomePackage>=1.0.4

Si los comandos muestran un error de denegación de permiso en Linux / Unix, use sudo con los comandos


Instalar desde archivos de requisitos

$ pip install -r requirements.txt

Cada línea del archivo de requisitos indica algo para instalar, y al igual que los argumentos para instalar, los detalles sobre el formato de los archivos están aquí: Formato del archivo de requisitos .

Después de instalar el paquete, puede verificarlo usando el comando de freeze :

$ pip freeze

Desinstalar paquetes

Para desinstalar un paquete:

$ pip uninstall SomePackage

Para listar todos los paquetes instalados usando `pip`

Para listar los paquetes instalados:

$ pip list
# example output
docutils (0.9.1)
Jinja2 (2.6)
Pygments (1.5)
Sphinx (1.1.2)

Para listar paquetes obsoletos y mostrar la última versión disponible:

$ pip list --outdated
# example output
docutils (Current: 0.9.1 Latest: 0.10)
Sphinx (Current: 1.1.2 Latest: 1.1.3)

Paquetes de actualización

Corriendo

$ pip install --upgrade SomePackage 

actualizará el paquete SomePackage y todas sus dependencias. Además, pip elimina automáticamente la versión anterior del paquete antes de la actualización.

Para actualizar pip en sí, haz

$ pip install --upgrade pip

en Unix o

$ python -m pip install --upgrade pip

en las máquinas de Windows.

Actualizando todos los paquetes desactualizados en Linux

pip no contiene actualmente una bandera que permita a un usuario actualizar todos los paquetes desactualizados de una sola vez. Sin embargo, esto puede lograrse uniendo los comandos en un entorno Linux:

pip list --outdated --local | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 pip install -U

Este comando toma todos los paquetes en el virtualenv local y comprueba si están desactualizados. De esa lista, obtiene el nombre del paquete y luego lo canaliza a un comando pip install -U . Al final de este proceso, todos los paquetes locales deben actualizarse.

Actualizando todos los paquetes desactualizados en Windows

pip no contiene actualmente una bandera que permita a un usuario actualizar todos los paquetes desactualizados de una sola vez. Sin embargo, esto puede lograrse uniendo los comandos en un entorno Windows:

for /F "delims= " %i in ('pip list --outdated --local') do pip install -U %i

Este comando toma todos los paquetes en el virtualenv local y comprueba si están desactualizados. De esa lista, obtiene el nombre del paquete y luego lo canaliza a un comando pip install -U . Al final de este proceso, todos los paquetes locales deben actualizarse.

Cree un archivo Requirements.txt de todos los paquetes en el sistema

pip ayuda en la creación de los requirements.txt archivos .txt al proporcionar la opción de freeze .

pip freeze > requirements.txt

Esto guardará una lista de todos los paquetes y su versión instalada en el sistema en un archivo llamado requirements.txt en la carpeta actual.

Cree un archivo Requirements.txt de paquetes solo en el virtualenv actual

pip ayuda en la creación de los requirements.txt archivos .txt al proporcionar la opción de freeze .

pip freeze --local > requirements.txt

El parámetro --local solo generará una lista de paquetes y versiones que se instalan localmente en un virtualenv. Los paquetes globales no serán listados.

Usando una determinada versión de Python con pip

Si tiene tanto Python 3 como Python 2 instalados, puede especificar qué versión de Python le gustaría que usara pip. Esto es útil cuando los paquetes solo admiten Python 2 o 3 o cuando desea probar con ambos.

Si desea instalar paquetes para Python 2, ejecute:

pip install [package]

o:

pip2 install [package]

Si desea instalar paquetes para Python 3, haga:

pip3 install [package]

También puede invocar la instalación de un paquete a una instalación específica de Python con:

\path\to\that\python.exe -m pip install some_package # on Windows OR
/usr/bin/python25 -m pip install some_package # on OS-X/Linux

En las plataformas OS-X / Linux / Unix, es importante tener en cuenta la distinción entre la versión del sistema de python (la actualización hace que el sistema deje de funcionar) y las versiones de usuario de python. Usted puede , dependiendo de lo que está intentando actualizar , necesita prefijar estos comandos con sudo e ingresar una contraseña.

Del mismo modo, en Windows, algunas instalaciones de Python, especialmente aquellas que son parte de otro paquete, pueden terminar instaladas en los directorios del sistema (aquellas que tendrá que actualizar desde una ventana de comandos que se ejecuta en el modo de administración) si le parece que necesita Para ello, es una muy buena idea comprobar qué instalación de Python está intentando actualizar con un comando como python -c"import sys;print(sys.path);" o py -3.5 -c"import sys;print(sys.path);" También puede comprobar qué pip está intentando ejecutar con pip --version

En Windows, si tienes ambos python 2 y python 3 instalados, y en tu ruta y tu python 3 es mayor que 3.4, entonces probablemente también tengas python launcher py en la ruta de tu sistema. A continuación, puede hacer trucos como:

py -3 -m pip install -U some_package # Install/Upgrade some_package to the latest python 3
py -3.3 -m pip install -U some_package # Install/Upgrade some_package to python 3.3 if present
py -2 -m pip install -U some_package # Install/Upgrade some_package to the latest python 2 - 64 bit if present
py -2.7-32 -m pip install -U some_package # Install/Upgrade some_package to python 2.7 - 32 bit if present

Si está ejecutando y manteniendo varias versiones de python, le recomendaría encarecidamente leer sobre los entornos virtualenv python virtualenv o venv que le permiten aislar tanto la versión de python como los paquetes que están presentes.

Instalación de paquetes aún no en pip como ruedas

Muchos paquetes de python puro aún no están disponibles en el Índice de Paquetes de Python como ruedas, pero aún así se instalan bien. Sin embargo, algunos paquetes en Windows le dan el error vcvarsall.bat no encontrado.

El problema es que el paquete que está intentando instalar contiene una extensión C o C ++ y no está disponible actualmente como una rueda precompilada del índice del paquete python, pypi , y en las ventanas no tiene la cadena de herramientas necesaria para compilar tales artículos

La respuesta más simple es ir al excelente sitio de Christoph Gohlke y localizar la versión adecuada de las bibliotecas que necesita. Por apropiado en el paquete nombrar -cp NN - tiene que coincidir con la versión de Python, es decir, si está utilizando Windows 32 bits pitón incluso en Win64 el nombre debe incluir -win32- y si el uso de la pitón de 64 bits que debe incluir -win_amd64 - y luego la versión de Python debe coincidir, es decir, para Python 34, el nombre del archivo debe incluir -cp 34- , etc. Esta es básicamente la magia que el pip hace por ti en el sitio pypi.

Alternativamente, necesita obtener el kit de desarrollo de Windows apropiado para la versión de python que está utilizando, los encabezados de cualquier biblioteca en la que el paquete está intentando crear interfaces, posiblemente los encabezados de python para la versión de python, etc.

Python 2.7 usó Visual Studio 2008, Python 3.3 y 3.4 usó Visual Studio 2010, y Python 3.5+ usa Visual Studio 2015.

Entonces es posible que deba ubicar los archivos de encabezado, en la revisión correspondiente de las bibliotecas a las que se vincula su paquete deseado y descargarlos en las ubicaciones correspondientes.

Finalmente , puede dejar que pip haga su compilación; por supuesto, si el paquete tiene dependencias que aún no tiene, es posible que también necesite encontrar los archivos de encabezado para ellos.

Alternativas: también vale la pena mirar hacia fuera, tanto en pypi como en el sitio de Christop , para cualquier versión ligeramente anterior del paquete que está buscando, ya sea python puro o pre-construido para su plataforma y versión de python y posiblemente usarlos, si encontrado, hasta que su paquete esté disponible. Del mismo modo, si está utilizando la última versión de python, es posible que los mantenedores de paquetes necesiten un poco de tiempo para ponerse al día, por lo que, para los proyectos que realmente necesitan un paquete específico, es posible que deba usar una python un poco más antigua por el momento. También puede consultar el sitio de origen de los paquetes para ver si hay una versión bifurcada que esté disponible preconstruida o como puro python y buscar paquetes alternativos que proporcionen la funcionalidad que necesita pero está disponible. Un ejemplo que viene a la mente es el siguiente. Almohada , mantenida activamente , reemplazo de PIL actualmente no actualizado en 6 años y no disponible para python 3 .

Después , recomendaría a cualquier persona que tenga este problema que vaya al rastreador de errores del paquete y añada o aumente, si no hay uno ya, un boleto que solicite educadamente que los mantenedores del paquete proporcionen una rueda en pypi para su específico combinación de plataforma y python, si esto se hace, normalmente las cosas mejorarán con el tiempo, algunos mantenedores de paquetes no se dan cuenta de que se han perdido una combinación determinada que las personas pueden estar usando.

Nota sobre la instalación de versiones preliminares

Pip sigue las reglas del control de versiones semántico y, de forma predeterminada, prefiere los paquetes publicados antes que los lanzamientos previos. Por lo tanto, si un paquete dado se ha liberado como V0.98 y también hay una versión candidata V1.0-rc1 el comportamiento predeterminado de pip install será instalar V0.98 : si desea instalar la versión candidata, le recomendamos para probar primero en un entorno virtual , puede habilitarlo con --pip install --pre package-name o --pip install --pre --upgrade package-name . En muchos casos, los pre-lanzamientos o lanzamientos de candidatos pueden no tener ruedas creadas para todas las combinaciones de plataformas y versiones, por lo que es más probable que encuentre los problemas anteriores.

Nota sobre la instalación de versiones de desarrollo

También puede usar pip para instalar versiones de desarrollo de paquetes desde github y otras ubicaciones, ya que dicho código está en flujo, es muy poco probable que se le construyan ruedas, por lo que cualquier paquete impuro requerirá la presencia de las herramientas de construcción, y es posible que se puede romper en cualquier momento, por lo que se recomienda encarecidamente al usuario que solo instale dichos paquetes en un entorno virtual.

Existen tres opciones para tales instalaciones:

  1. Descargue una instantánea comprimida, la mayoría de los sistemas de control de versiones en línea tienen la opción de descargar una instantánea comprimida del código. Esto puede descargarse manualmente y luego instalarse con la ruta de pip install / to / download / file. Tenga en cuenta que, para la mayoría de los formatos de compresión, pip manejará el desempaquetado en un área de caché, etc.
  2. Permita que pip maneje la descarga e instale por usted con: pip install URL / of / package / repository - también puede necesitar usar las --trusted-host , --client-cert y / o --proxy para que esto funcione correctamente, especialmente en un entorno corporativo. p.ej:
    > py -3.5-32 -m venv demo-pip
    > demo-pip\Scripts\activate.bat
    > python -m pip install -U pip
    Collecting pip
      Using cached pip-9.0.1-py2.py3-none-any.whl
    Installing collected packages: pip
      Found existing installation: pip 8.1.1
        Uninstalling pip-8.1.1:
          Successfully uninstalled pip-8.1.1
    Successfully installed pip-9.0.1
    > pip install git+https://github.com/sphinx-doc/sphinx/
    Collecting git+https://github.com/sphinx-doc/sphinx/
      Cloning https://github.com/sphinx-doc/sphinx/ to c:\users\steve-~1\appdata\local\temp\pip-04yn9hpp-build
    Collecting six>=1.5 (from Sphinx==1.7.dev20170506)
      Using cached six-1.10.0-py2.py3-none-any.whl
    Collecting Jinja2>=2.3 (from Sphinx==1.7.dev20170506)
      Using cached Jinja2-2.9.6-py2.py3-none-any.whl
    Collecting Pygments>=2.0 (from Sphinx==1.7.dev20170506)
      Using cached Pygments-2.2.0-py2.py3-none-any.whl
    Collecting docutils>=0.11 (from Sphinx==1.7.dev20170506)
      Using cached docutils-0.13.1-py3-none-any.whl
    Collecting snowballstemmer>=1.1 (from Sphinx==1.7.dev20170506)
      Using cached snowballstemmer-1.2.1-py2.py3-none-any.whl
    Collecting babel!=2.0,>=1.3 (from Sphinx==1.7.dev20170506)
      Using cached Babel-2.4.0-py2.py3-none-any.whl
    Collecting alabaster<0.8,>=0.7 (from Sphinx==1.7.dev20170506)
      Using cached alabaster-0.7.10-py2.py3-none-any.whl
    Collecting imagesize (from Sphinx==1.7.dev20170506)
      Using cached imagesize-0.7.1-py2.py3-none-any.whl
    Collecting requests>=2.0.0 (from Sphinx==1.7.dev20170506)
      Using cached requests-2.13.0-py2.py3-none-any.whl
    Collecting typing (from Sphinx==1.7.dev20170506)
      Using cached typing-3.6.1.tar.gz
    Requirement already satisfied: setuptools in f:\toolbuild\temp\demo-pip\lib\site-packages (from Sphinx==1.7.dev20170506)
    Collecting sphinxcontrib-websupport (from Sphinx==1.7.dev20170506)
      Downloading sphinxcontrib_websupport-1.0.0-py2.py3-none-any.whl
    Collecting colorama>=0.3.5 (from Sphinx==1.7.dev20170506)
      Using cached colorama-0.3.9-py2.py3-none-any.whl
    Collecting MarkupSafe>=0.23 (from Jinja2>=2.3->Sphinx==1.7.dev20170506)
      Using cached MarkupSafe-1.0.tar.gz
    Collecting pytz>=0a (from babel!=2.0,>=1.3->Sphinx==1.7.dev20170506)
      Using cached pytz-2017.2-py2.py3-none-any.whl
    Collecting sqlalchemy>=0.9 (from sphinxcontrib-websupport->Sphinx==1.7.dev20170506)
      Downloading SQLAlchemy-1.1.9.tar.gz (5.2MB)
        100% |################################| 5.2MB 220kB/s
    Collecting whoosh>=2.0 (from sphinxcontrib-websupport->Sphinx==1.7.dev20170506)
      Downloading Whoosh-2.7.4-py2.py3-none-any.whl (468kB)
        100% |################################| 471kB 1.1MB/s
    Installing collected packages: six, MarkupSafe, Jinja2, Pygments, docutils, snowballstemmer, pytz, babel, alabaster, imagesize, requests, typing, sqlalchemy, whoosh, sphinxcontrib-websupport, colorama, Sphinx
      Running setup.py install for MarkupSafe ... done
      Running setup.py install for typing ... done
      Running setup.py install for sqlalchemy ... done
      Running setup.py install for Sphinx ... done
    Successfully installed Jinja2-2.9.6 MarkupSafe-1.0 Pygments-2.2.0 Sphinx-1.7.dev20170506 alabaster-0.7.10 babel-2.4.0 colorama-0.3.9 docutils-0.13.1 imagesize-0.7.1 pytz-2017.2 requests-2.13.0 six-1.10.0 snowballstemmer-1.2.1 sphinxcontrib-websupport-1.0.0 sqlalchemy-1.1.9 typing-3.6.1 whoosh-2.7.4

Tenga en cuenta el prefijo git+ a la URL.

  1. Clonar el repositorio usando git , mercurial herramienta aceptable u otro, preferentemente una herramienta DVCS, y el uso pip install ruta / a / clonada / repo - esto tanto el proceso como cualquier archivo requires.text y llevar a cabo los pasos de generación y configuración, se puede cambiar manualmente directorio a su repositorio clonado y ejecute pip install -r requires.txt python setup.py install y luego python setup.py install para obtener el mismo efecto. Las grandes ventajas de este enfoque es que, si bien la operación de clonación inicial puede llevar más tiempo que la descarga de instantáneas, puede actualizar a la última versión con, en el caso de git: git pull origin master y si la versión actual contiene errores, puede usar la pip uninstall nombre-paquete, luego use los comandos de git checkout para retroceder a través del historial del repositorio a las versiones anteriores y volver a intentarlo.


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow