Как запустить .py из .sh? (Двойным щелчком)
Описание проблемы:
У меня OS: линукс Mint/Open Suse Leap 16. + Idle3 среда для разработки python3 + мой код питон с библиотекой pygame.
Задача запустить .py из .sh двойным щелчком по файлу в одно действие ).
Ответы (2 шт):
A) Зайдите в Настройки/Приложения/Настройте ассоциацию файлов для sh (я её случайно сбил её... ):
Для sh-файла: Выбирайте: /usr/bin/bash.
B) Чтобы, запустить 0.py из 0.sh:
Создаем в
0.py:print("Hello World")Создаем текстовый файл
0.sh:#!/usr/bin/bash echo 1111 python3 0.pyПереходим в папку проекта с
0.pyи0.shфайлами. открываем консоль:$ chmod +x 'Перетаскиваем файл и заключаем его в такие кавычки' нажимаем (enter) /.'Перетаскиваем файл и заключаем его в такие кавычки' нажимаем (enter)
(Важно: Попутно смотрим: не выдает ли ошибки, чтобы не было лишних пробелов и символов в конце строк,- если они есть, - удаляем backspace'ом.)
После этого все работает!
По-хорошему, файл .sh должен выглядеть, например, так:
#!
PYTHON=${PYTHON:-python} # Возьмём путь к python из переменной окружения, если она задана
script=`dirname -- "$0"`/`basename -- "$0" .sh`.py # Получим имя python скрипта
"$PYTHON" "$script" "$@" # Запустим python скрипт с аргументами, если они есть
Следует установить этому файлу разрешение на выполнение, например, командой:
chmod +x <Путь>.sh
Как можно заметить, содержимое файла не зависит от базового имени .py файла, поэтому их можно получать командой ln -s ... на единый файл образец.
Однако, замечу, что есть же вариант запуска сразу .py файла. Для этого он должен начинаться со следующей строки (см. так же В чём смысл и преимущества #!/usr/bin/env?):
#!/usr/bin/env python
....
Точно так же ему следует установить разрешение на выполнение:
chmod +x <Путь>.py
Как вариант, расширение, .py не обязательно, это вопрос личных предпочтений.