Python Language
pip: PyPI Package Manager
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
- instalar
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 |
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.
- Instale " Visual C ++ Compiler Package for Python 2.7 ", que está disponible en el sitio web de Microsoft o
- Instale " Windows SDK para Windows 7 y .NET Framework 4 " (v7.1), que está disponible en el sitio web de Microsoft o
- Instale Visual Studio 2015 Community Edition , (o cualquier versión posterior, cuando se publiquen) , asegurándose de que selecciona las opciones para instalar el soporte de C & C ++ que ya no tiene el valor predeterminado . Me han dicho que la descarga y la instalación pueden demorar hasta 8 horas. así que asegúrese de que esas opciones estén configuradas en el primer intento.
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:
- 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. - 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.
- Clonar el repositorio usando
git
,mercurial
herramienta aceptable u otro, preferentemente una herramienta DVCS, y el usopip 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 ejecutepip install -r requires.txt
python setup.py install
y luegopython 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 lapip uninstall
nombre-paquete, luego use los comandos degit checkout
para retroceder a través del historial del repositorio a las versiones anteriores y volver a intentarlo.