Actualmente tengo config.py
en mi paquete y puedo acceder a las variables definidas en config.py desde otros archivos py como
import config var1 = config.var1
En primer lugar, ¿puedo pasar el archivo como argumento? test.py config.py
Pero, ¿hay alguna forma de pasar el archivo de configuración a través de la línea de comandos como argumento y acceder a las variables definidas en él? Veo que hay un módulo sys
para pasar los argumentos a través de la línea de comandos. ¿Pero puedo obtener variables definidas en el archivo pasado?
Ahora puedo acceder a las variables en el archivo pasado como __import__(sys.argv[1])
y se llama python test.py config
. ¿Pero puedo llamar al archivo config.py dando pythonpath? e / g / python test.py ~/Desktop/config
o PYTHONPATH='~/Desktop/' python test.py config
? Porque si hago esto no consigo no module error
.
Lo que hace con la import config
es hacer que todos los nombres de config.py
estén disponibles en su script.
Puede hacer esto usando __import__(sys.args[1])
como se indica en las respuestas a esta pregunta .
Pero para la configuración real del progtwig, ¡asegúrate de echar un vistazo al módulo argparse
!
p = argparse.ArgumentParser(description="...") p.add_argument("--var1", type=int) p.add_argument("--var2", type=str) config = p.parse_args() # will look at sys.args by default if config.var1 > 10: ....