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 " venvahora se recomienda el uso para crear entornos virtuales", mientras que virtualenves una alternativa para las versiones de Python anteriores a 3.4 .
actualizado: 2018-08-17: desde conda-4.4.0 uso condapara activateanaconda en todas las plataformas
actualizado: 2017-03-27: PEP 513 - manylinuxbinarios 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 pipen mi sistema Ubuntu, pero en lugar de eso utilice cualquiera de Ubuntu Software Center, sináptica , apt-geto 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 requestsno 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 numpyinstalar 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 manylinuxbinarios 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 manylinuxruedas por defecto usando OpenBLAS en su lugar de ATLAS. Todavía puede construirlos desde el origen utilizando las opciones de pip --no-use-wheelo--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 --useresquema 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: -mrealmente 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 virtualenvdesde la versión 13.0.0, por lo tanto, si su versión de virtualenves 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 -dpara 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 sudoersy virtualenvno 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 --usero la --home=<wherever-you-want>instalación de Python esquemas con Python distutilsva a instalar los paquetes con el valor de site.USERBASEo al lugar que desee. Las versiones más recientes de pip también tienen una --useropció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-optioncual es útil para pasar opciones personalizadas a algunos setup.pyscripts para algunos paquetes que crean extensiones, como la configuración de PREFIX. Es posible que deba extraer la distribución y usarla distutilspara instalar el paquete a la antigua usanza escribiendo python setup install [options]. Leer algo de la documentación de instalación y la distutilsdocumentación puede ayudar.
Python es lo suficientemente agradable como para agregarle site.USERBASEa usted PYTHONPATHpor delante de cualquier otra cosa, por lo que los cambios solo lo afectarán. Un lugar popular para --homees ~/.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 --homeesquema de instalación a continuación, puede que tenga que añadirlo a la PYTHONPATHvariable de entorno utilizando exporten su .bashrc, .bash_profileo 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 ~/.bashrco la ~/.bash_profilede anteponer el camino de Anaconda a su $PATH fuente recomendada personalconda.shen su ~/.bashrcque 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 PATHexportación de su ~/.bashrcy actualizar a la nueva recomendación , por lo que su sistema Python será el primero nuevamente.
Esto es algo similar a la --useropció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, condapor defecto instala paquetes de Anaconda, pero puede señalar un "canal" diferente usando la -copción.
Instalar paquetes con condasolo como pip:
$ conda install -c pvlib pvlib # install pvlib pkg from pvlib channel
¡Pero condapuede 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 pipadministrador de paquetes se puede usar para instalar paquetes desde PyPI en un entorno de Anaconda sin root o sudo. ¡No lo use sudocon Anaconda! ¡Advertencia! Sin embargo, tenga cuidado al mezclar pipy condaen un entorno Anaconda, b / c tendrá que administrar las dependencias del paquete con más cuidado. Otra opción para pipen 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-depsinstale las dependencias restantes manualmente conda.
Anaconda también es similar en algunos aspectos a Ruby RVM si está familiarizado con esa herramienta. Anaconda condatambié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 seaborncreará 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 virtualenvque utiliza source venv/bin/activate, pero anterior a conda-4.4.0 los condacomandos eran el mismo como virtualenvy 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 sudopara instalar paquetes de Python . El uso de sudodebe ser un olor que algo anda mal. Usted ha sido advertido.
¡Buena suerte y feliz codificación!