Как запустить программу на Python напрямую?
Я создал файл .py (скажем, mnik.py ) в gedit. В терминале он работает без сбоев.
Команда идет
python3 mnik.py
Но всякий раз, когда я нажимаю на файл, он открывается с помощью gedit. Я не могу запустить его напрямую, нажав.
Что делать?
Существует две необходимые вещи.
#!
строка говоря ОС, который интерпретатор использовать. В Вашем случае Ваша самая первая строка в коде должна быть #!/usr/bin/env python3
Необходимо открыть файловый менеджер, перейдите к Редактированию-> Предпочтения-> Поведение и выберите, что сделать с исполняемыми файлами
chmod +x /path/to/script.py
и в GUI, щелкните правой кнопкой по файлу и измените его Свойства-> ПолномочияСамую первую строку называют строкой хижины и должна запуститься с #!
; независимо от того, что прибывает, затем название интерпретатора, который прочитает Ваш код. В случае, если Вы используете python3
Вы могли использовать также #!/usr/bin/python3
или #!/usr/bin/env python3
для мобильности. Если Вы не используете код, который будет характерен для версии Python - просто используют #!/usr/bin/env python
Если Ваш сценарий распечатает вывод к консоли, то это должно будет иметь окно терминала или альтернативно использовать диалоговые окна графического интерфейса пользователя такой как zenity
. Предпочтите использовать Run in Terminal
опция, если Вы хотите видеть код. Если Вы хотите, чтобы сценарий сделал что-то, не видя консольного вывода - использование Run
опция.
Кроме того, если у Вас есть параметры командной строки, такой как sys.argv[1]
в сценарии Вы не можете установить их, если у Вас нет открытого окна терминала.
Если Вы хотите запустить эту программу, не вводя python3 mnik.py
, необходимо сделать исполняемый файл сценария и удостовериться, что python3
используется для выполнения его.
первое можно сделать путем выполнения
chmod +x mnik.py
второе, которое можно сделать путем добавления как первая строка сценария строка хижины , который вызывает python3. Во всех системах Ubuntu я работал с этим, шел с python3, можно получить python3 путем добавления этой строки наверху:
#!/usr/bin/env python3
После тех двух изменений можно ввести /path/to/mnik.py
, ./mnik.py
или всего mnik.py
(последний требует, чтобы сценарий был в ПУТИ).
при внесении этих изменений, Вы могли бы также хотеть рассмотреть переименование mnik.py
к mnik
, который является обычной практикой с пакетами Python с командами, которые публикуются на PyPI.
Необходимо поместить местоположение программы для выполнения кода на первой строке, и затем необходимо установить сценарий для выполнения как исполняемый файл путем изменения его полномочий. Это предполагает запуск приложений от терминала или другого сценария.
Находят, что Ваша установка Python
$ which python
/usr/bin/python
Добавляет местоположение программ к верхней строке Вашей программы с #!
в передней стороне
#!/usr/bin/python
# Python code goes here....
Набор сценарий Python для имения прав выполнения
$ chmod 700 test.py
Теперь, можно запустить скрипт непосредственно
$ ./test.py
Листинг кода для test.py
#!/usr/bin/python
print "test"
Я нашел обходной путь, если вы не хотите заморачиваться установкой скрипта в качестве исполняемого файла, добавлением комментариев к коду или запуском из терминала при каждом запуске.
Перейдите в ~/.local/share/applications
, создайте там новый файл .desktop
. Назовите его как-то так python-run.desktop
. Вставьте в него следующее:
[Desktop Entry]
Name=Run Python Script
Comment=Python Interpreter
Exec=gnome-terminal -- /bin/bash -c 'python3 %f;echo "$(tput setaf 1)Program terminated.\nPress enter to exit...$(tput sgr 0)"; read'
Icon=/usr/share/pixmaps/python3.6.xpm
Terminal=true
Type=Application
Categories=Development;
StartupNotify=true
NoDisplay=true
В основном это скопировано из файла .desktop
самого интерпретатора Python. Разница в том, что когда вы открываете его, он запускает новый экземпляр строки терминала с командой: python3 %f;echo "$(tput setaf 1)Программа завершена.\nНажмите Enter, чтобы выйти...$(tput сгр 0)"; read'
, который запускает скрипт (%f
— это, по-видимому, путь к файлу), затем приостанавливается при выходе.
Затем перейдите в nautilus, щелкните скрипт правой кнопкой мыши, выберите Свойства → Открыть с помощью и выберите Запустить скрипт Python, только что созданное «Приложение». Теперь, когда вы дважды щелкнете, он должен запустить скрипт из терминала.
Это неплохой обходной путь, но я обнаружил с ним 2 проблемы:
Exec=python3 %f
, он продолжал выдавать мне исключение конца файла всякий раз, когда программа пыталась получить ввод. Не знаю, почему.