He intentado buscar la respuesta en Google pero sin suerte.
Necesito usar mi servidor de supercomputadora de obras, pero para que mi script de Python se ejecute, debe ejecutarse a través de un script de shell.
Por ejemplo quiero job.sh
ejecutarpython_script.py
¿Cómo se puede lograr esto?
python python_script.py
tu script de shell?python python_script.py
. O solo./python_script.py
si el guión tiene un shebang.Respuestas:
Solo asegúrese de que el ejecutable de Python esté en su variable de entorno PATH y luego agregue su script
Detalles:
chmod u+x job.sh
./job.sh
fuente
python --version
, y puede aplicar la versión conpython3 hello.py
.source PATH/TO/VENV/bin/activate
luego llamarpython python_script.py
/path/to/Python: can't open file '/path/to/script': [Errno 1] Operation not permitted
¿hay alguna manera de incluir mi código python en línea dentro del script bash?Método 1: crear un script de shell:
Supongamos que tiene un archivo de Python
hello.py
Cree un archivo llamadojob.sh
que contengamárquelo ejecutable usando
entonces ejecútalo
Método 2 (MEJOR): haga que la propia pitón se ejecute desde el shell:
Modifique su secuencia de comandos
hello.py
y agregue esto como la primera líneamárquelo ejecutable usando
entonces ejecútalo
fuente
#!/usr/bin/env python
. ¡Recuerde asegurarse de hacer referencia a la versión y ruta de Python correctas para su sistema!Imho, escribiendo
Está bastante mal, especialmente en estos días. ¿Qué pitón? python2.6? 2.7? 3.0? 3.1? La mayoría de las veces debe especificar la versión de Python en la etiqueta shebang del archivo de Python. Animo a usar
por compatibilidad.En tal caso, es mucho mejor tener el script ejecutable e invocarlo directamente:
De esta manera, la versión de Python que necesita solo está escrita en un archivo. La mayoría del sistema en estos días tiene python2 y python3 mientras tanto, y sucede que el enlace simbólico python apunta a python3 , mientras que la mayoría de la gente espera que apunte a python2 .
fuente
python script.py param
?./abc.py -h
Guarde el siguiente programa como
print.py
:Luego en el tipo de terminal:
fuente
Esto funciona mejor para mí: agregue esto en la parte superior del script:
(C: \ Python27 \ python.exe es la ruta al python.exe en mi máquina) Luego ejecute el script a través de:
fuente
Esto funciona para mi:
Cree un nuevo trabajo de archivo de shell. Entonces, digamos:
touch job.sh
y agregue el comando para ejecutar el script de python (incluso puede agregar argumentos de línea de comando a ese python, generalmente predefinir mis argumentos de línea de comando).chmod +x job.sh
Dentro
job.sh
agregue los siguientes archivos py, digamos:python_file.py argument1 argument2 argument3 >> testpy-output.txt && echo "Done with python_file.py"
python_file1.py argument1 argument2 argument3 >> testpy-output.txt && echo "Done with python_file1.py"
Done with python_file.py
Done with python_file1.py
Utilizo esto generalmente cuando tengo que ejecutar múltiples archivos de Python con diferentes argumentos, predefinidos.
Nota: solo un rápido aviso sobre lo que está sucediendo aquí:
python python_file.py
simple y llanamente. A continuación, el >> imprimirá y almacenará la salida de este archivo .py en el archivo testpy-output.txt.fuente
Debería poder invocarlo como
python scriptname.py
p. Ej.También asegúrese de que el script tenga permisos para ejecutarse.
Puede hacerlo ejecutable usando
chmod u+x scriptname.py
.fuente
Yo uso esto y funciona bien
fuente
Como las otras publicaciones dicen todo (y me topé con esta publicación mientras buscaba lo siguiente).
Aquí hay una manera de cómo ejecutar un script de Python desde otro script de Python:
Python 2:
Python 3:
y puedes suministrar args proporcionando alguna otra
sys.argv
fuente