actualizado: 2019-05-11: Esta publicación menciona principalmente virtualenv
, pero de acuerdo con el documento de Python sobre la instalación del módulo , ya que Python 3.5 " venv
ahora se recomienda el uso para crear entornos virtuales", mientras que virtualenv
es una alternativa para las versiones de Python anteriores a 3.4 .
actualizado: 2018-08-17: desde conda-4.4.0 uso conda
para activate
anaconda en todas las plataformas
actualizado: 2017-03-27: PEP 513 - manylinux
binarios para PyPI
actualizado: 2016-08-19: Opción de Anaconda Continua
Esto es algo duplicado de easy_install / pip o apt-get .
Para paquetes globales de Python, use el Centro de software de Ubuntu, apt, apt-get o synaptic
Ubuntu usa Python para muchas funciones importantes, por lo tanto, interferir con Python puede dañar su sistema operativo. Esta es la razón principal por la que nunca uso pip
en mi sistema Ubuntu, pero en lugar de eso utilice cualquiera de Ubuntu Software Center, sináptica , apt-get
o la más reciente simplemente apt
, que todo por defecto instalar paquetes desde el repositorio de Ubuntu . Estos paquetes se prueban, generalmente precompilados para que se instalen más rápido y, en última instancia, estén diseñados para Ubuntu. Además, todas las dependencias requeridas también se instalan y se mantiene un registro de las instalaciones para que puedan revertirse. Creo que la mayoría de los paquetes tienen repositorios de Launchpad correspondientes para que pueda archivar problemas.
Otra razón para usar cualquiera de los paquetes de Ubuntu es que a veces estos paquetes de Python tienen diferentes nombres dependiendo de dónde los descargó. Python-chardet es un ejemplo de un paquete que en un momento se denominó una cosa en PyPI y otra en el repositorio de Ubuntu. Por lo tanto, hacer algo así pip install requests
no se dará cuenta de que Chardet ya está instalado en su sistema porque la versión de Ubuntu tiene un nombre diferente y, en consecuencia, instale una nueva versión que dañará su sistema de una manera insignificante pero aún así, ¿por qué haría eso?
En general, solo desea instalar código de confianza en su sistema operativo. Entonces deberías estar nervioso por escribir $ sudo pip <anything-could-be-very-bad>
.
Por último, algunas cosas son más fáciles de instalar usando cualquiera de los paquetes de Ubuntu. Por ejemplo, si intenta pip install numpy
instalar numpy & scipy a menos que ya haya instalado gfortran, atlas-dev, blas-dev y lapack-dev, verá un flujo interminable de errores de compilación. Sin embargo, instalar numpy & scipy a través del repositorio de Ubuntu es tan fácil como ...
$ sudo apt-get install python-numpy python-scipy
Estás de suerte, porque estás usando Ubuntu, una de las distribuciones más actualizadas y con mayor soporte existente. Lo más probable es que cada paquete de Python que necesite esté en el repositorio de Ubuntu, y probablemente ya esté instalado en su máquina. Y cada 6 meses, se lanzará un nuevo ciclo de paquetes con la última distribución de Ubuntu.
Si está 100% seguro de que el paquete no interferirá con su sistema Ubuntu de ninguna manera, puede instalarlo usando pip y Ubuntu es lo suficientemente agradable como para mantener estos paquetes separados de los paquetes de distribución colocando los paquetes de distribución en una carpeta llamada dist-packages/
. El repositorio de Ubuntu tiene pip, virtualenv y setuptools. Sin embargo, secundo la sugerencia de Wojciech de usar virtualenv.
Para proyectos personales de Python, use pip and wheel en virtualenv
Si necesita la última versión, o el módulo no está en el repositorio de Ubuntu, inicie virtualenv y use pip para instalar el paquete. Aunque pip y setuptools se han fusionado, se prefiere pip IMO en lugar de instalación fácil o distutils, porque siempre esperará hasta que el paquete se descargue y compile completamente antes de copiarlo en su sistema de archivos, y hace que la actualización o desinstalación sea muy fácil. En muchos sentidos, es similar a apt-get, ya que generalmente maneja bien las dependencias. Sin embargo, usted se puede tener para manejar algunas dependencias a sí mismo, pero desde PEP 513 fue adoptado en la actualidad hay manylinux
binarios en el índice de paquetes de Python (PyPI) para distribuciones de Linux populares como Ubuntu y Fedora .por ejemplo, como se mencionó anteriormente para NumPy y SciPy, asegúrese de haber instalado gfortran, atlas-dev, blas-dev y lapack-dev desde el repositorio de Ubuntu Por ejemplo, tanto NumPy como SciPy ahora se distribuyen para Ubuntu como manylinux
ruedas por defecto usando OpenBLAS en su lugar de ATLAS. Todavía puede construirlos desde el origen utilizando las opciones de pip --no-use-wheel
o--no-binary <format control>
.
~$ sudo apt-get install gfortran libblas-dev liblapack-dev libatlas-dev python-virtualenv
~$ mkdir ~/.venvs
~$ virtualenv ~/.venvs/my_py_proj
~$ source ~/.venvs/my_py_proj/bin/activate
~(my_py_proj)$ pip install --no-use-wheel numpy scipy
Consulte la siguiente sección, "No está en sudoers
", a continuación para instalar versiones actualizadas de pip, setuptools, virtualenv o wheels en su perfil personal utilizando el --user
esquema de instalación con pip. Puede usar esto para actualizar pip para su uso personal como JF Sebastian indicó en su comentario a otra respuesta . NOTA: -m
realmente solo es necesario en MS Windows cuando se actualiza pip .
python -m pip install --user pip setuptools wheel virtualenv
Las versiones más nuevas de pip almacenan automáticamente en caché las ruedas, por lo que lo siguiente solo es útil para versiones anteriores de pip. Como puede terminar instalando estas muchas veces, considere usar la rueda con pip para crear una caseta de gobierno. La rueda ya está incluida virtualenv
desde la versión 13.0.0, por lo tanto, si su versión de virtualenv
es demasiado antigua, es posible que primero deba instalarla.
~(my_py_proj)$ pip install wheel # only for virtualenv < v13.0.0
~(my_py_proj)$ pip wheel --no-use-wheel numpy scipy
Esto creará archivos de rueda binarios <cwd>/wheelhouse
, use -d
para especificar un directorio diferente. Ahora, si inicia otro virtualenv y necesita los mismos paquetes que ya ha creado, puede instalarlos desde su timonera utilizandopip install --find-links=<fullpath>/wheelhouse
Lea Instalación de módulos de Python en la documentación de Python e Instalación de paquetes en la página principal del índice de paquetes de Python . También pip , venv , virtualenv y wheel .
Si no estás dentro sudoers
y virtualenv
no está instalado.
Otra opción para el uso de un entorno virtual, o si está utilizando una cuota de Linux sin privilegios de root, a continuación, utilizando ya sea el --user
o la --home=<wherever-you-want>
instalación de Python esquemas con Python distutils
va a instalar los paquetes con el valor de site.USERBASE
o al lugar que desee. Las versiones más recientes de pip también tienen una --user
opción. No lo use sudo
!
pip install --user virtualenv
Si su versión de Linux de pip es demasiado antigua, puede pasar las opciones de configuración mediante la --install-option
cual es útil para pasar opciones personalizadas a algunos setup.py
scripts para algunos paquetes que crean extensiones, como la configuración de PREFIX
. Es posible que deba extraer la distribución y usarla distutils
para instalar el paquete a la antigua usanza escribiendo python setup install [options]
. Leer algo de la documentación de instalación y la distutils
documentación puede ayudar.
Python es lo suficientemente agradable como para agregarle site.USERBASE
a usted PYTHONPATH
por delante de cualquier otra cosa, por lo que los cambios solo lo afectarán. Un lugar popular para --home
es ~/.local
. Consulte la guía de instalación del módulo Python para conocer la estructura exacta del archivo y específicamente dónde están los paquetes de su sitio. Nota : si se utiliza el --home
esquema de instalación a continuación, puede que tenga que añadirlo a la PYTHONPATH
variable de entorno utilizando export
en su .bashrc
, .bash_profile
o en su cáscara para sus paquetes localizados a estar disponible en Python.
Utilice Python continuo de Anaconda para matemáticas, ciencias, datos o proyectos personales
Si está utilizando Python para matemáticas, ciencias o datos, entonces IMO, una muy buena opción es la distribución Anaconda-Python o la distribución miniconda más básica lanzada por Anaconda, Inc. (anteriormente conocida como Continuum Analytics ) . Aunque cualquiera podría beneficiarse del uso de Anaconda para proyectos personales, la instalación predeterminada incluye más de 500 paquetes de matemáticas y ciencias como NumPy, SciPy, Pandas y Matplotlib , mientras que miniconda solo instala Anaconda-Python y el administrador de entorno de conda. Anaconda solo se instala en su perfil personal, es decir , /home/<user>/
y altera su ruta ~/.bashrc
o la ~/.bash_profile
de anteponer el camino de Anaconda a su $PATH
fuente recomendada personalconda.sh
en su ~/.bashrc
que le permite utilizar conda activate <env|default is base>
para iniciar Anaconda - esto sólo afecta a usted - la ruta del sistema no se ha modificado . ¡Por losudo
tanto , no necesita acceso de root ni usar Anaconda! Si ya ha agregado Anaconda-Python, miniconda o conda a su ruta personal, debe eliminar la PATH
exportación de su ~/.bashrc
y actualizar a la nueva recomendación , por lo que su sistema Python será el primero nuevamente.
Esto es algo similar a la --user
opción que expliqué en la última sección, excepto que se aplica a Python en su conjunto y no solo a los paquetes. Por lo tanto, Anaconda está completamente separada de su sistema Python , no interferirá con su sistema Python, y solo usted puede usarlo o cambiarlo. Dado que instala una nueva versión de Python y todas sus bibliotecas, necesitará al menos 200 MB de espacio, pero es muy inteligente sobre el almacenamiento en caché y la administración de bibliotecas, lo cual es importante para algunas de las cosas interesantes que puede hacer con Anaconda.
Anaconda cura una colección de binarios y bibliotecas de Python requeridas por las dependencias en un repositorio en línea (anteriormente llamado binstar ) , y también alojan paquetes de usuarios como diferentes "canales". El administrador de paquetes utilizado por Anaconda, conda
por defecto instala paquetes de Anaconda, pero puede señalar un "canal" diferente usando la -c
opción.
Instalar paquetes con conda
solo como pip
:
$ conda install -c pvlib pvlib # install pvlib pkg from pvlib channel
¡Pero conda
puede hacer mucho más! También puede crear y administrar entornos virtuales al igual que virtualenv
. Por lo tanto, dado que Anaconda crea entornos virtuales, el pip
administrador de paquetes se puede usar para instalar paquetes desde PyPI en un entorno de Anaconda sin root o sudo
. ¡No lo use sudo
con Anaconda! ¡Advertencia! Sin embargo, tenga cuidado al mezclar pip
y conda
en un entorno Anaconda, b / c tendrá que administrar las dependencias del paquete con más cuidado. Otra opción para pip
en un entorno conda es usar el canal conda-forge, pero también es mejor hacerlo en un entorno conda nuevo con conda-forge como canal predeterminado. Como último recurso, si no puede encontrar un paquete en otro lugar que no sea PyPI, considere usarlo e --no-deps
instale las dependencias restantes manualmente conda
.
Anaconda también es similar en algunos aspectos a Ruby RVM si está familiarizado con esa herramienta. Anaconda conda
también te permite crear entornos virtuales con diferentes versiones de Python . por ejemplo : conda create -n py35sci python==3.5.2 numpy scipy matplotlib pandas statsmodels seaborn
creará una pila científica / ciencia de datos usando Python-3.5 en un nuevo entorno llamado py35sci
. Puede cambiar entornos utilizando conda
. Desde conda-4.4.0, esto ahora es diferente a virtualenv
que utiliza source venv/bin/activate
, pero anterior a conda-4.4.0 los conda
comandos eran el mismo como virtualenv
y también se utiliza source
:
# AFTER conda-4.4
~/Projects/myproj $ conda activate py35sci
# BEFORE conda-4.4
~/Projects/myproj $ source activate py35sci
¡Pero espera hay mas! Anaconda también puede instalar diferentes lenguajes como R para programación estadística desde el canal Anacondar
. Incluso puede configurar su propio canal para cargar distribuciones de paquetes creadas para conda . Como se mencionó, conda-forge mantiene compilaciones automatizadas de muchos de los paquetes en PyPI en el canal Anaconda de conda-forge .
Epílogo
Hay muchas opciones para mantener sus proyectos de Python en Linux dependiendo de sus necesidades personales y acceso. Sin embargo, si hay algo que espero que saque de esta respuesta es que casi nunca debería necesitar usar sudo
para instalar paquetes de Python . El uso de sudo
debe ser un olor que algo anda mal. Usted ha sido advertido.
¡Buena suerte y feliz codificación!