Как запустить программу на Python напрямую?
Я создал файл .py (скажем, mnik.py ) в gedit. В терминале все идет гладко.
Команда идет
python3 mnik.py
Но всякий раз, когда я нажимаю на файл, он открывается с помощью gedit. Я не могу запустить его напрямую, нажав.
Что делать?
python3
в командной строке с аргументом - отличный способ запуска скриптов на python. На самом деле это самый простой способ запустить программу, которая требует терминала и аргументов (как многие из моих собственных сценариев, но также и такие программы, какmercurial
,sphinx
). Не могли бы вы объяснить, почему то, что я делаю более 20 лет, не совсем правильно?./scriptname
, не подтверждает ваше утверждение о том, что скрипт запускается из командной строки с помощьюpython3
. Существуют разные способы запуска сценариев Python, и выполнениеpython3 ./mnik.py
также является правильным способом выполнения действий, оно просто другое (и, по крайней мере, вы получаете Python3 таким образом, а не Python2, как это более вероятно с большинством ответов)Ответы:
Там нужно две вещи.
#!
строка, указывающая ОС, какой интерпретатор использовать. В вашем случае ваша самая первая строка в коде должна быть#!/usr/bin/env python3
Вам нужно открыть файловый менеджер, перейти в «Правка» -> «Настройки» -> «Поведение» и выбрать, что делать с исполняемыми файлами.
chmod +x /path/to/script.py
и в GUI, щелкнуть правой кнопкой мыши по файлу и изменить его Свойства -> РазрешенияСамая первая строка называется линией Шебанга и должна начинаться с
#!
; что будет дальше, так это имя интерпретатора, который будет читать ваш код. В случае, если вы используете,python3
вы можете использовать либо для#!/usr/bin/python3
или#!/usr/bin/env python3
мобильности. Если вы не используете код, который будет специфичен для версии Python - просто используйте#!/usr/bin/env python
Обратите внимание на вывод скрипта:
Если ваш сценарий печатает вывод на консоль, он должен иметь окно терминала или, в качестве альтернативы, использовать диалоги GUI, такие как
zenity
. Предпочитаю использоватьRun in Terminal
опцию, если вы хотите увидеть код. Если вы хотите, чтобы скрипт что-то делал, не видя вывод консоли - используйтеRun
опцию.Кроме того, если у вас есть параметры командной строки, такие как
sys.argv[1]
в скрипте, вы не можете их установить, если у вас не открыто окно терминала.источник
Files
программа на панели запуска. В Windows говорят, что будет файловым обозревателем илиMy Computer
nautilus
в Терминале#!
(shebang) в скрипты Python, и какую форму он должен принимать?#!/usr/bin/env python
вызовет Python2 в большинстве систем Ubuntu. Хотя вы можете сделать сценарий Python, написанный для Python3, совместимым с Python2, я не предполагаю, что OP это сделал.#!/usr/bin/env python3
кажется более подходящим shebangВам нужно указать расположение программы для выполнения вашего кода в первой строке, а затем вам нужно настроить запуск сценария как исполняемого файла, изменив его разрешения. Это предполагает, что вы запускаете свои приложения из терминала или другого скрипта.
Найдите свою установку Python
Добавьте расположение программ в верхнюю строку вашей программы с
#!
передУстановите скрипт Python, чтобы иметь права на выполнение
Теперь вы можете запустить скрипт напрямую
Листинг кода для test.py
источник
Если вы хотите запустить эту программу без ввода,
python3 mnik.py
вы должны сделать сценарий исполняемым и убедиться, чтоpython3
он используется для его запуска.Первое, что вы можете сделать, запустив
второе вы можете сделать, добавив в качестве первой строки скрипта строку shebang, которая вызывает python3 . На всех системах Ubuntu, с которыми я работал, которые поставлялись с python3, вы можете получить python3, добавив эту строку вверху:
После этих двух изменений вы можете набрать
/path/to/mnik.py
,./mnik.py
или простоmnik.py
(последнее требует, чтобы скрипт был в вашей переменной PATH).Если вы сделаете эти изменения, вы также можете рассмотреть возможность переименования
mnik.py
вmnik
, что является обычной практикой для пакетов Python с командами, которые публикуются в PyPI.источник
/
пропавший там фронт. Пожалуйста, объясните, что "Это" в вашем комментарии. Это оболочка Bash? Это Windows Command.com? Из чего вы вызываете программу и с каким синтаксисом командной строки?