manjaro instalar change arch python python-3.x archlinux

instalar - tkinter python archlinux



"Forma correcta" para administrar varias versiones de Python en archlinux (7)

Como han dicho otros, la respuesta corta es "no hagas esto, es muy probable que rompas cosas en tu sistema", sin embargo, si utilizas principalmente Python 2, aún puedes establecer tu valor predeterminado personal en tu shell (y aún tener el opción de cambiar a Python 3 en cualquier momento). Para hacer esto, primero conviértase en root e instale python2-virtualenv :

# pacman -S python2-virtualenv

Luego cree un entorno virtual que use Python 2 (esto instalará automáticamente Python, setuptools, wheel y pip en el entorno):

$ virtualenv -p /usr/bin/python2 --system-site-packages ~/env # (Or wherever you want your environment to live)

Si solo desea usar paquetes instalados localmente (por ejemplo, los paquetes que instala con pip y no los instalados por pacman ), elimine la --system-site-packages al crear su entorno.

Ahora en su ~/.bash_profile o ~/.profile (o cualquiera que sea el archivo de configuración de sus shells preferidos), configure algo como lo siguiente:

source ~/env/bin/activate

Esto activará el entorno virtual, haciendo su versión predeterminada de Python 2.

Esto todavía podría romper cualquier cosa que se inicie en un shell, pero no es probable que se produzca algo a menos que lo esté ejecutando explícitamente desde un shell, en cuyo momento puede desactivar el entorno virtual ejecutando:

deactivate

o simplemente ejecute manualmente Python 3.

Así que he leído esto - https://wiki.archlinux.org/index.php/Python

Y está claro en esta wiki que puedo instalar Python 2.7.2 a través de

pacman -S python2

¿Es razonable para mí crear un enlace simbólico a python2?

ln -s python2 /usr/bin/python

¿Si no me veo a mí mismo cambiando a python 3.0 pronto? ¿O hay una mejor manera de administrar varias versiones de Python como lo que normalmente uso en un sistema Debian (update-alternative --config python) o en un sistema mac os x (python select)?

ACLARACIÓN:

  • Lo que estoy tratando de descubrir es: ¿cuál es la "mejor práctica" de administrar varias versiones de python en un sistema archlinux?
  • Soy nuevo en archlinux pero estoy familiarizado con ubuntu, debian y mac os x

Hay un buen proyecto en github que te ayuda con lo que se llama pyenv Lo que te ayuda a administrar varias instancias de python


La mayoría de los usuarios ya tienen un / usr / bin / python. Sobrescribir que es una mala idea, ya que esta es la versión de Python utilizada por todos los paquetes en el sistema, y ​​cambiarla puede romperlos. Al instalar el paquete de Python 2.7, el ejecutable debe instalarse como /usr/bin/python2.7 (de lo contrario, diría que Archlinux está dañado) y es mejor usarlo cuando desee ejecutar Python 2.7.

Archlinux es un poco especial, ya que usará / usr / bin / python para Python 3, a pesar de que el nombre ejecutable predeterminado para Python 3 es / usr / bin / python3. Esto es confuso y se puede ver como un error, pero significa que no puede usar ese enlace simbólico para Python 2, ya que cualquier otro script de Archlinux que use Python 3 se romperá si lo hace.

Entonces, donde en otros Unices, simbolizar / usr / bin / python con Python 2.7 es una mala idea, en Archlinux es una idea terrible. En su lugar, simplemente instale todas las versiones que necesite y llámelas con /usr/bin/pythonX.X.


Me tropecé con este post, no tenía la intención de hacer necroscopios, pero me estaba preguntando que nadie mencionó virtualenvs. También estoy usando ArchLinux y uso los paquetes python virtualenv y virtualenvwrapper para crear múltiples entornos python. Puede hacer referencia a los binarios de python 2 o python3 en / usr / bin / para determinar la versión de python utilizada en el entorno virtual.

El beneficio es que los paquetes instalados en un entorno virtual no alteran el Python que usa el sistema y hay muchas formas de automatizar el manejo de proyectos.


No, no hay mejor manera de hacer esto. El enlace simbólico de python es parte del paquete Python 3.

Supongo que cambiar este enlace no romperá nada por ahora, pero es posible que algunos paquetes dependan de ello en el futuro.


Sé que esta puede ser una respuesta muy antigua, pero me tomó dos días resolver el problema, así que voy a compartir.

La forma correcta de administrar las versiones de Python en tu sistema para trabajar en diferentes proyectos sin que te vuelvan loco es usar pyenv y sus complementos pyenv-virtualenv y pyenv-virtualenvwrapper como lo describe Henrique Bastos en esta publicación de blog . Tenga en cuenta que esta forma de trabajar es un poco independiente de la plataforma, ya que pyenv es un paquete de python y se puede ejecutar de manera similar en Windows, Linux y Mac OSx.

Los problemas comienzan con Arch Linux. El sistema operativo no proporciona una versión pacman de pyenv, por lo que debe instalarla clonándola desde github como se describe en la sección de instalación de la versión . El proceso de instalación es el mismo para pyenv-virtualenv y pyenv-virtualenvwrapper. Tenga en cuenta que la configuración de inicialización del shell puede ser diferente, en mi caso no funcionó para ~ / .bash_profile, pero funcionó para ~ / .bashrc.

Ejecutar pyenv no es sencillo si su instalación es muy nueva como la que estoy configurando en estos días, ya que pip requiere openSSL e incluso si la instala a través de pacman, pyenv no la ve. Por lo tanto, si desea instalar una versión anterior de Python (a saber, 3.4.3), encontrará que el shell se queja de que no ha instalado el complemento openSSL, incluso si lo tiene . Para ser honesto, no tuve los paquetes correctos la primera vez que intenté instalarlos; tienes que descargar los siguientes paquetes

sudo pacman -S openssl sudo pacman -S openssl-1.0 sudo pacman -S python-pyopenssl sudo pacman -S python2-pyopenssl

La forma en que resolví el problema es agregar los indicadores como se describe en las Preguntas frecuentes de instalación de pyenv : esa solución finalmente me llevó a instalar la versión de python que quería:

LDFLAGS="-L/usr/lib/openssl-1.0" / CFLAGS="-I/usr/include/openssl-1.0" / pyenv install -v 3.4.3

Para evitar ir a la página de Preguntas frecuentes cada vez que desee renovar el entorno de instalación de Python, puede agregar un alias en ~ / .bashrc o lo que sea que cargue como sigue:

echo alias pyenv=''LDFLAGS="-L/usr/lib/openssl-1.0" / CFLAGS="-I/usr/include/openssl-1.0" / pyenv'' >> ~/.bashrc

De este modo, puede instalar python correctamente con una sintaxis de pyenv limpia y administrarlo a través de sus complementos de la misma manera (ya que la sintaxis es pyenv [COMANDO] [OTHERSTUFF]).


Yo diría que no deberías crear ningún enlace simbólico como este en absoluto. Especialmente si va a distribuir parte de su código de Python, no debe asumir que un usuario tiene python2 o python3 en / usr / bin / python.

Si su script requiere python2, solo use:

#!/usr/bin/env python2

Si su script requiere python3, use:

#!/usr/bin/env python3

De esta manera, sus scripts funcionarán bien incluso a través de las actualizaciones de Python. También será mucho más claro qué versión necesita realmente su script.