python - easy - ¿Cuál es la forma oficial "preferida" para instalar pip y virtualenv en todo el sistema?
pip install python 3 (16)
¿Es esto lo que las personas parecen recomendar más a menudo?
$ sudo apt-get install python-setuptools
$ sudo easy_install pip
$ sudo pip install virtualenv
O esto, que obtuve de http://www.pip-installer.org/en/latest/installing.html :
$ curl -O https://github.com/pypa/virtualenv/raw/master/virtualenv.py
$ python virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install ...
¿O algo completamente diferente?
@ericholscher dice en Twitter, "El de los documentos oficiales ..."
Es un gran punto, debes hacer lo que dicen los doctores.
Citado de las instrucciones oficiales de instalación de pip en http://www.pip-installer.org/en/latest/installing.html :
$ curl -O https://github.com/pypa/virtualenv/raw/master/virtualenv.py
$ python virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install ...
A partir de los paquetes de distribución, puede usar:
sudo apt-get install python-virtualenv
que te permite crear virtualenvs, o
sudo apt-get install python{,3}-pip
que le permite instalar paquetes arbitrarios en su directorio de inicio.
Si está acostumbrado a virtualenv, el primer comando le proporciona todo lo que necesita (recuerde, el paquete está incluido y se instalará en cualquier medio virtual que cree).
Si solo desea instalar paquetes, el segundo comando le brinda lo que necesita. Use pip así:
pip install --user something
y pon algo así
PATH=~/.local/bin:$PATH
en su ~/.bashrc
.
Si su distribución es antigua y no desea usar sus paquetes (excepto en el caso de Python, probablemente), puede descargar virtualenv, ya sea como tarball o como secuencia de comandos independiente:
wget -O ~/bin/virtualenv https://raw.github.com/pypa/virtualenv/master/virtualenv.py
chmod +x ~/bin/virtualenv
Si su distribución es más del tipo de borde sangrante, Python3.3 tiene capacidades de virtualenv incorporadas:
python3 -m venv ./venv
Esto funciona mucho más rápido, pero setuptools y pip no están incluidos.
Como virtualenvs contienen pip por defecto, casi nunca instalo pip globalmente. Lo que hago termina pareciéndose más a:
$ sudo apt-get install python-setuptools
$ curl -O http://python-distribute.org/distribute_setup.py
$ sudo python distribute_setup.py
$ sudo easy_install virtualenv
Luego procedo a instalar y configurar virtualenvwrapper a mi gusto y listo. también podría valer la pena echar un vistazo al virtualenv-burrito de Jeremy Avnet:
El primer método está bien. El único problema que veo es que puede terminar con una versión anterior de setuptools (si el repositorio apt no se ha actualizado).
En Debian, la mejor manera de hacerlo sería
sudo apt-get install python-pip
En Raspbian, ni siquiera es necesario mencionar python2.7
. De hecho, esta es la mejor manera de instalar pip si la versión de Python es inferior a 2.7.9.
curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python
Gracias a @ tal-weiss
En Ubuntu 12.04 he tenido mucha suerte solo con usar el administrador de paquetes:
sudo apt-get install python-pip virtualenvwrapper
Esta respuesta proviene de @webology en Twitter:
$ sudo apt-get install python-setuptools
$ sudo easy_install pip
$ sudo pip install --upgrade pip virtualenv virtualenvwrapper
Mis notas agregadas:
- En Mac / Windows (y Linux si el repositorio apt no está actualizado), reemplazaría el primer paso con la descarga de setuptools desde http://pypi.python.org/pypi/setuptools
- En Windows tendrías que omitir virtualenvwrapper del último paso e instalarlo manualmente de alguna manera. No sé si hay una forma de hacerlo sin Cygwin, pero eso espero.
Hacer esto:
curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python get-pip.py
pip install virtualenv
Ver
No hay un método preferido: todo depende de tus necesidades. A menudo necesita tener diferentes intérpretes de Python en el sistema por cualquier razón. En este caso, debe instalar las cosas individualmente para cada intérprete. Aparte de eso: prefiero instalar cosas yo mismo en lugar de depender de cosas preempaquetadas que a veces causan problemas, pero esa es solo una opción posible.
Para instalar pip en un mac (osx), el siguiente trazador de líneas funcionó muy bien para mí:
sudo easy_install pip
Realmente no hay una sola "respuesta" a esta pregunta, pero definitivamente hay algunos conceptos útiles que pueden ayudarlo a tomar una decisión.
La primera pregunta que debe responderse en su caso de uso es "¿Quiero utilizar el sistema Python?" Si desea usar el Python distribuido con su sistema operativo, entonces usar el método de instalación de apt-get puede estar bien. Sin embargo, dependiendo del método de distribución del sistema operativo, todavía tiene que hacer algunas preguntas más, como "¿Deseo instalar varias versiones de este paquete?" Si la respuesta es sí, entonces probablemente no sea una buena idea usar algo como apt. Dpkg simplemente va a deshacer un archivo en la raíz del sistema de archivos, por lo que depende del mantenedor del paquete asegurarse de que el paquete se instale de forma segura bajo muy pocas suposiciones. En el caso de la mayoría de los paquetes de Debian, asumiría (alguien puede sentirme libre de corregirme aquí) que simplemente deshacen y proporcionan un paquete de nivel superior.
Por ejemplo, supongamos que el paquete es "virtualenv", terminarías con /usr/lib/python2.x/site-packages/virtualenv
. Si lo instala con easy_install
obtendrá algo como /usr/lib/python2.x/site-packages/virtualenv.egg-link
que podría apuntar a /usr/lib/python2.x/site-packages/virtualenv-1.2-2.x.egg
que puede ser un directorio o un huevo comprimido. Pip hace algo similar aunque no usa huevos y en su lugar colocará el paquete de nivel superior directamente en el directorio lib
.
Puede que esté fuera en los caminos, pero el punto es que cada método tiene en cuenta las diferentes necesidades. Esta es la razón por la cual herramientas como virtualenv son útiles ya que le permiten archivar sus bibliotecas de Python de modo que pueda tener cualquier combinación que necesite de bibliotecas y versiones.
SetupTools también permite instalar paquetes como multiversión, lo que significa que no hay un dule_name.egg-link
creado. Para importar esos paquetes, necesita usar pkg_resources y la función __import__
.
Volviendo a su pregunta original, si está satisfecho con el sistema python y planea usar virtualenv y pip para crear entornos para diferentes aplicaciones, entonces la instalación de virtualenv y / o pip a nivel del sistema usando apt-get parece totalmente apropiado. Sin embargo, una palabra de precaución es que si planea actualizar sus distribuciones Python, eso puede tener un efecto dominó a través de sus virtualenvs si enlazó de nuevo a los paquetes del sitio de su sistema.
También debo mencionar que ninguna de estas opciones es inherentemente mejor que las demás. Simplemente toman diferentes enfoques. El uso de la versión del sistema es una excelente manera de instalar aplicaciones de Python, sin embargo, puede ser una forma muy difícil de desarrollar con Python. Las herramientas de instalación y configuración sencillas son muy prácticas en un mundo sin virtualenv, pero si necesita usar diferentes versiones de la misma biblioteca, también se vuelve bastante difícil de manejar. Pip y virtualenv realmente actúan más como una máquina virtual. En lugar de tener cuidado de instalar cosas una al lado de la otra, simplemente creas un entorno completamente nuevo. La desventaja aquí es que más de 30 virtualenvs más tarde es posible que haya utilizado bastante espacio de disco y abarrotado su sistema de archivos.
Como puede ver, con las muchas opciones es difícil decir qué método usar, pero con una pequeña investigación de sus casos de uso, debería poder encontrar un método que funcione.
Si puede instalar la última versión de Python (2.7.9 y superior), Pip ahora viene incluido. Ver: https://docs.python.org/2.7//installing/index.html
Si no :
Actualización (de las notas de la versión):
A partir de v1.5.1, pip no requiere herramientas de configuración antes de ejecutar get-pip.py. Además, si setuptools (o distribuir) aún no está instalado, get-pip.py instalará setuptools para usted.
Ahora corro el regular:
curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python
Estas son las instrucciones de instalación oficiales: http://pip.readthedocs.org/en/latest/installing.html#install-pip
EDICION 25-Jul-2013:
Se modificó la URL para la instalación de las herramientas de instalación.
EDICION 10-feb-2014:
Se ha eliminado la instalación de setuptools (gracias @Ciantic)
EDICIÓN 26-jun-2014:
URL actualizada nuevamente (gracias @LarsH)
EDICIÓN 1-Mar-2015:
Pip ahora viene incluido con Python
Yo uso get-pip y virtualenv-burrito para instalar todo esto. No estoy seguro de si se requiere python-setuptools.
# might be optional. I install as part of my standard ubuntu setup script
sudo apt-get -y install python-setuptools
# install pip (using get-pip.py from pip contrib)
curl -O https://raw.github.com/pypa/pip/develop/contrib/get-pip.py && sudo python get-pip.py
# one-line virtualenv and virtualenvwrapper using virtualenv-burrito
curl -s https://raw.github.com/brainsik/virtualenv-burrito/master/virtualenv-burrito.sh | bash
http://www.pip-installer.org/en/latest/installing.html es realmente la respuesta canónica a esta pregunta.
Específicamente, las instrucciones para todo el sistema son:
$ curl -O http://python-distribute.org/distribute_setup.py
$ python distribute_setup.py
$ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
$ python get-pip.py
La sección citada en la pregunta es las instrucciones virtualenv
lugar de las del sistema. Las instrucciones easy_install
han estado disponibles por más tiempo, pero ya no es necesario hacerlo de esa manera.
https://github.com/pypa/pip/raw/master/contrib/get-pip.py es probablemente la manera correcta ahora.