Shell Script: выполнить программу python из оболочки script
Я попытался найти ответ, но не повезло.
Мне нужно использовать мой суперкомпьютерный сервер, но для запуска моего python script он должен быть выполнен через оболочку script.
Например, я хочу job.sh
выполнить python_script.py
Как это можно сделать?
Ответы
Ответ 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" будет отражен на ваш клиент/терминал во время выполнения.