Подтвердить что ты не робот

Shell Script: выполнить программу python из оболочки script

Я попытался найти ответ, но не повезло.

Мне нужно использовать мой суперкомпьютерный сервер, но для запуска моего python script он должен быть выполнен через оболочку script.

Например, я хочу job.sh выполнить python_script.py

Как это можно сделать?

4b9b3361

Ответ 1

Просто убедитесь, что исполняемый файл python находится в переменной среды PATH, а затем добавьте в свой script

python path/to/the/python_script.py

Подробнее:

  • В файле job.sh поместите это
#!/bin/sh
python python_script.py
  • Выполните эту команду, чтобы выполнить script для вас: chmod u+x job.sh
  • Запустите его: ./job.sh

Ответ 2

Способ 1 - Создать оболочку script:

Предположим, что у вас есть файл python hello.py Создайте файл с именем job.sh, который содержит

#!/bin/bash
python hello.py

отметьте его исполняемым файлом, используя

$ chmod +x job.sh

затем запустите его

$ ./job.sh

Способ 2 (ЛУЧШЕЕ) - Сделать сам python запущен из оболочки:

Измените свой script hello.py и добавьте это как первую строку

#!/usr/bin/env python

отметьте его исполняемым файлом, используя

$ chmod +x hello.py

затем запустите его

$ ./hello.py

Ответ 3

Имхо, пишущий

python /path/to/script.py

Совершенно неправильно, особенно в наши дни. Какой питон? python2.6? 2,7? 3,0? 3,1? В большинстве случаев вам нужно указать версию python в теге shebang файла python. Я рекомендую использовать

#!/usr/bin/env python2 #or python2.6 or python3 or even python3.1
для совместимости.

В таком случае гораздо лучше иметь исполняемый файл script и вызывать его напрямую:

#!/bin/bash

/path/to/script.py

Таким образом, версия python вам нужна только в одном файле. В настоящее время большинство систем имеют python2 и python3, и бывает, что symlink python указывает на python3, в то время как большинство людей ожидают, что он укажет на python2.

Ответ 4

вы должны иметь возможность вызвать его как python scriptname.py

eg

# !/bin/bash

python /home/user/scriptname.py 

также убедитесь, что script имеет разрешения для запуска

вы можете сделать его исполняемым с помощью chmod u + x scriptname.py

ИЗМЕНИТЬ: избили: -p

Ответ 5

Это работает лучше всего для меня: Добавьте это вверху script:

#!c:/Python27/python.exe

(C:\Python27\python.exe - это путь к python.exe на моей машине) Затем запустите script с помощью:

chmod +x script-name.py && script-name.py

Ответ 6

Это работает для меня:

  • Создайте job.sh и добавьте команду для запуска python script (вы даже можете добавить аргументы командной строки к этому python, я обычно предварительно определяю аргументы командной строки).

    chmod + x job.sh

  • внутри job.sh добавьте следующие файлы py, скажем:

    python_file.py аргумент1 аргумент2 аргумент3 → testpy-output.txt && & && echo "завершено с python_file.py"

    python_file1.py аргумент1 аргумент2 аргумент3 → testpy-output.txt && & && echo "завершено с python_file1.py"

  • Результат job.sh должен выглядеть следующим образом: завершено с python_file.py

  • Я использую это обычно, когда мне приходится запускать несколько файлов python с разными аргументами, предварительно определенными.

Примечание: Просто быстро опишите, что происходит здесь:

python_file.py argument1 argument2 argument3 >> testpy-output.txt && echo "completed with python_file.py" . 

Здесь shell script запустит файл python_file.py и добавит несколько аргументов командной строки во время выполнения в файл python. Это не обязательно означает, что вы должны также передавать аргументы командной строки. Вы можете просто использовать его как: python python_file.py, простой и простой. Затем распечатает и сохранит вывод этого .py файла в файле testpy-output.txt.

& - это логический оператор, который будет запускаться только после успешного выполнения вышеописанного и в качестве дополнительного echo ", завершенного с помощью python_file.py" будет отражен на ваш клиент/терминал во время выполнения.