107 votos

Cómo agregar una variable de entorno permanente en zsh

He estado buscando por internet y no logro encontrar una solución para agregar permanentemente una variable de entorno, específicamente cuando mi sistema operativo es macOS Mojave (10.14). Parece que hay muchos tutoriales para versiones anteriores del sistema operativo, pero ninguno para esta versión. Además, parece que todos los métodos antiguos están obsoletos.

Quiero agregar una variable de entorno ENV_VAR=12345 a mi Mac, para poder importarla en un módulo de Python usando os.environ['ENV_VAR']

El tutorial más relevante que he encontrado es este, pero no termina de funcionar para mí. Muchos otros te dicen cómo agregar temporalmente variables de entorno a bash, pero creo que eso no es suficiente. Quiero que la adición esté ahí si reinicias la terminal.

¿Puedes por favor proporcionar un tutorial corto o indicarme el tutorial correcto/moderno?

ACTUALIZACIÓN: Debería haber mencionado que uso zsh. Esto era importante.

0 votos

0 votos

¿Se ejecuta el script de Python desde la línea de comandos o desde una aplicación en el escritorio o Finder?

0 votos

@Mark ¡El script se ejecuta desde la línea de comandos! A través de python -m module_name

0voto

Tim Campbell Puntos 111

Los nombres de archivo utilizados para establecer variables de entorno difieren dependiendo del shell que estás utilizando. Por defecto, los Mac asignan el shell bash a los nuevos usuarios. echo $SHELL si no estás seguro.

A partir de aquí, verifica la página del manual. Por ejemplo: man bash y documentará los archivos que se ejecutarán en tiempo de ejecución. Puedes añadir una variable de entorno a uno de esos archivos.

Para bash, asegúrate de exportar la variable o no será heredada por un proceso hijo. Por ejemplo: export ENV_VAR=12345 o ENV_VAR=12345; export ENV_VAR

-1voto

ACTUALIZACIÓN: lee los comentarios en la respuesta de @slm. debería haber estado editando ~/.zshrc en lugar de ~/.bash_profile, porque uso zsh. ¡Cuanto más sabes! La respuesta a continuación también pareció funcionar, pero de manera poco convencional.


Gracias a @Tim Campbell y @slm, logré hacer que algo funcionara.

Antecedentes

echo $0 imprime -zsh

echo $SHELL imprime /bin/zsh

echo $PATH imprime /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin


Mi solución "poco convencional"

Hice un script de shell configure_env.sh y lo puse en ~/Documents

#!/bin/zsh
export ENV_VAR=12345

Luego ejecuté chmod +x ~/Documents/configure_env.sh

Luego hice nano ~/.bash_profile y añadí source ~/Documents/configure_env.sh

Luego, cuando escribí echo $ENV_VAR, devolvió 12345

) ¡gracias de nuevo a Stack Overflow!

3 votos

Ugh this is a mess and a dreadful idea- you need to edit one file only and add export ENV_VAR=12345 to it and the file is .zshrc So delete everything after I use zsh. Also the fact you are using zsh must be in the question

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X