¿Hay alguna manera de cargar y usar una secuencia de comandos python en environment modules? os.system('module load xxx')
no funciona, ya que los ejecuta en una subshell (al menos, creo que eso es lo que está sucediendo).Cargando módulos de entorno dentro de una secuencia de comandos python
Respuesta
Sé la clase de edad de esta pregunta, pero es todavía lo suficientemente relevante que yo estaba buscando la respuesta, por lo Les dejo lo que he encontrado que funciona así:
al menos en las fuentes 3.2.9+, puede incluir la pitón "init" del archivo para obtener una versión de función pitón del módulo:
>>> execfile('/usr/local/Modules/default/init/python.py')
>>> module('list')
No Modulefiles Currently Loaded.
>>> module('load','foo')
>>> module('list')
Currently Loaded Modulefiles:
1) foo/1.0
Me han dicho que las versiones anteriores pueden hacer lo mismo sin la extensión .py, pero eso es de segunda mano, entonces ymmv.
No directamente, pero aquí hay una posible solución, dependiendo de su entorno. Asumiendo que puede prologar su comando de sistema con ENVVAR=value
, se puede hacer algo en este sentido:
import os
os.environ['EDITOR'] = 'vi'
cmd = "EDITOR=%(EDITOR)s $EDITOR" % os.environ
os.system(cmd)
El código asigna vi a la variable de entorno EDITOR, y luego se lo pasa en la línea de comandos y ejecuta el comando, el cual (en este caso) es EDITOR.
Uno de nuestros administradores fue capaz de resolver el problema para mí usando os.popen()
llamadas a modulecmd
:
cmd = os.popen('/path/to/modulecmd python load my-module')
exec(cmd)
- 1. Establecer variables de entorno global dentro de la secuencia de compilación Xcode ejecutar secuencia de comandos
- 2. ¿Cómo se invoca una secuencia de comandos python dentro de un archivo jar utilizando Python?
- 3. awk: configuración de las variables de entorno directamente desde dentro de una secuencia de comandos awk
- 4. ¿Puede una secuencia de comandos python cambiar persistentemente una variable de entorno de Windows? (elegantemente)
- 5. ¿Cuándo se debe dividir una secuencia de comandos de Python en múltiples archivos/módulos?
- 6. Hacer una secuencia de comandos de Python Orientado a objetos
- 7. entorno RoR en la secuencia de comandos independiente de Ruby
- 8. Cargando la secuencia de comandos JS solo para dispositivos iOS?
- 9. ¿Hay alguna manera de incrustar dependencias dentro de una secuencia de comandos python?
- 10. (pero no de ejecución) una secuencia de comandos de Python
- 11. Cómo ejecutar una magia de IPython desde una secuencia de comandos (o cronometrar una secuencia de comandos de Python)
- 12. Cambiar a sudo usuario dentro de una secuencia de comandos python
- 13. La secuencia de comandos PHP no puede obtenerse desde la secuencia de comandos de Python
- 14. ¿Cómo desarmo una secuencia de comandos de Python?
- 15. Reinicio de una secuencia de comandos python autoactualizable
- 16. La secuencia de comandos Python + CGI no puede acceder a las variables de entorno
- 17. En la secuencia de comandos de Python, ¿cómo configuro PYTHONPATH?
- 18. Pasando el valor de la secuencia de comandos PHP a la secuencia de comandos de Python
- 19. ¿Cómo "detener" y "reanudar" la secuencia de comandos de Python?
- 20. Tome una captura de pantalla a través de una secuencia de comandos python. [Linux]
- 21. ¿Cómo obtener la ruta actual del intérprete de Python desde dentro de una secuencia de comandos de Python?
- 22. ¿Cómo ejecutar una secuencia de comandos python en segundo plano?
- 23. ¿cómo detengo la ejecución en una secuencia de comandos python?
- 24. ¿Forma HTML POST a una secuencia de comandos python?
- 25. argparse Módulos de Python en cli
- 26. Obtener contenido dentro de la secuencia de comandos como texto
- 27. Ejecutando líneas de comando dentro de su secuencia de comandos de Python
- 28. Invocar una segunda secuencia de comandos con argumentos de una secuencia de comandos
- 29. Uso de variables de entorno del sistema en una secuencia de comandos SQL
- 30. Cómo importar su paquete/módulos a partir de una secuencia de comandos en la carpeta bin en Python
Esto está mucho más cerca de lo que realmente usamos (ya que las llamadas 'popen' a' modulecmd' están en el archivo 'python.py' que usted citó), así que estableceré esto para la respuesta. ¡Gracias! –
¡Tuve casi un ataque cardíaco al descubrir esto! Muchas gracias. – yvesonline
En el servidor que estoy usando está en /usr/share/Modules/init/python.py. Encontré la ruta de ejecución del módulo --version (la entrada correcta parece MODULES_INIT_DIR) – lib