запуск скрипта python без консоли
Как заставить скрипт Python работать без открытия окна консоли?
Я хочу дважды щелкнуть по моему скрипту Python (который использует графический интерфейс Tkinter), и я просто хочу, чтобы он открывал окно Tkinter, а не окно консоли.
Пожалуйста, предложите независимое от платформы решение, которое помогло бы мне запустить скрипт Python без открытия терминала / командной строки.
2 ответа
Вы можете использовать pyinstaller для создания исполняемых файлов для разных платформ, которые вы хотите.
Синтаксис команды pyinstaller:
В самом простом случае установите текущий каталог в местоположение вашей программы myscript.py и выполните:
PyInstaller анализирует myscript.py и:
В папке dist вы найдете приложение, которое вы распространяете среди пользователей.
Обычно вы называете один скрипт в командной строке. Если вы назовете больше, все будут проанализированы и включены в вывод. Однако первый названный скрипт предоставляет имя для файла спецификации и для исполняемой папки или файла. Его код выполняется первым во время выполнения.
Для определенных целей вы можете редактировать содержимое myscript.spec (описано в разделе «Использование файлов спецификаций»). После того, как вы сделаете это, вы называете файл спецификации PyInstaller вместо сценария:
Вы можете указать путь к файлу скрипта или спецификации, например
Прошло много времени с тех пор, как я попробовал Linux, но я считаю, что это должно быть довольно просто, во-первых, вы должны поместить шебанг в верхнюю часть скрипта, чтобы ваша оболочка знала, какой исполняемый файл использовать:
Или если вы хотите конкретную версию, вы можете расширить это до:
Используя ту версию, которую вы хотите (работает только для первых 2 цифр)
Тогда вам нужно пометить его как исполняемый:
Подробнее об этом см. на этой странице.
Затем, когда вы дважды щелкнете по нему, на RPI (последний раз я использовал Linux) он спрашивает, хотите ли вы выполнить его или выполнить его в терминале.
Если вы решите выполнить его без терминала, вы должны увидеть только графический интерфейс tkinter
Запуск Python и python-скрипт на компьютере
Код, написанный на языке Python, может храниться в редакторе кода, IDE или файле. И он не будет работать, если не знать, как его правильно запускать.
В этом материале рассмотрим 7 способов запуска кода, написанного на Python. Они будут работать вне зависимости от операционной системы, среды Python или местоположения кода.
Где запускать Python-скрипты и как?
Python-код можно запустить одним из следующих способов:
Запуск Python-кода интерактивно
Для запуска интерактивной сессии нужно просто открыть терминал или командную строку и ввести python (или python3 в зависимости от версии). После нажатия Enter запустится интерактивный режим.
Вот как запустить интерактивный режим в разных ОС.
Интерактивный режим в Linux
Откройте терминал. Он должен выглядеть приблизительно вот так :
После нажатия Enter будет запущен интерактивный режим Python.
Интерактивный режим в macOS
На устройствах с macOS все работает похожим образом. Изображение ниже демонстрирует интерактивный режим в этой ОС.
Интерактивный режим в Windows
Запуск Python-скриптов в интерактивном режиме
В таком режиме можно писать код и исполнять его, чтобы получить желаемый результат или отчет об ошибке. Возьмем в качестве примера следующий цикл.
Для выхода из интерактивного режима нужно написать следующее:
И нажать Enter. Вы вернетесь в терминал, из которого и начинали.
Есть и другие способы остановки работы с интерактивным режимом Python. В Linux нужно нажать Ctrl + D, а в Windows — Ctrl + Z + Enter.
Стоит отметить, что при использовании этого режима Python-скрипты не сохраняются в локальный файл.
Как выполняются Python-скрипты?
Отличный способ представить, что происходит при выполнении Python-скрипта, — использовать диаграмму ниже. Этот блок представляет собой скрипт (или функцию) Python, а каждый внутренний блок — строка кода.
При запуске скрипта интерпретатор Python проходит сверху вниз, выполняя каждую из них. Именно таким образом происходит выполнение кода.
Но и это еще не все.
Блок-схема выполнения кода интерпретатором
Это набор инструкций, которые приводят к финальному результату.
Иногда полезно изучать байткод. Если вы планируете стать опытным Python-программистом, то важно уметь понимать его для написания качественного кода.
Это также пригодится для принятия решений в процессе. Можно обратить внимание на отдельные факторы и понять, почему определенные функции/структуры данных работают быстрее остальных.
Как запускать Python-скрипты?
Для запуска Python-скрипта с помощью командной строки сначала нужно сохранить код в локальный файл.
Возьмем в качестве примера файл, который был сохранен как python_script.py. Сохранить его можно вот так:
Сохранить скрипт в текстовом редакторе достаточно легко. Процесс ничем не отличается от сохранения простого текстового файла.
Но если использовать командную строку, то здесь нужны дополнительные шаги. Во-первых, в самом терминале нужно перейти в директорию, где должен быть сохранен файл. Оказавшись в нужной папке, следует выполнить следующую команду (на linux):
После нажатия Enter откроется интерфейс командной строки, который выглядит приблизительно следующим образом:
Теперь можно писать код и с легкостью сохранять его прямо в командной строке.
Как запускать скрипт в командной строке?
Python. Урок 2. Запуск программ на Python
В этом уроке мы рассмотрим два основных подхода к работе с интерпретатором Python – это непосредственная интерпретация строк кода, вводимых с клавиатуры в интерактивном режиме и выполенение файлов с исходным кодом в пакетном режиме. Также коснемся некоторых особенностей работы с Python в Linux и MS Windows.
Язык Python – это интерпретируемый язык. Это означает, что помимо непосредственно самой программы, вам необходим специальный инструмент для её запуска. Напомню, что существуют компилируемые и интерпретируемые языки программирования. В первом случае, программа с языка высокого уровня переводится в машинный код для конкретной платформы. В дальнейшем, среди пользователей, она, как правило, распространяется в виде бинарного файла. Для запуска такой программы не нужны дополнительные программные средства (за исключением необходимых библиотек, но эти тонкости выходят за рамки нашего обсуждения). Самыми распространенными языками такого типа являются C++ и C. Программы на интерпретируемых языках, выполняются интерпретатором и распоространяются в виде исходного кода. На сегодняшний день, среди интерпретируемых языков наиболее популярным является Python.
Если вы еще не установили интерпретатор Python, то самое время это сделать. Подробно об этом написано здесь.
Python может работать в двух режимах:
В интерактивный режим можно войти, набрав в командной строке
В результате Python запустится в интерактивном режиме и будет ожидать ввод команд пользователя.
Если же у вас есть файл с исходным кодом на Python, и вы его хотите запустить, то для этого нужно в командной строке вызвать интерпретатор Python и в качестве аргумента передать ваш файл. Например, для файла с именем test.py процедура запуска будет выглядеть так:
Интерактивный режим
Откройте Python в интерактивном режиме и наберите в нем следующее:
В ответ на это интерпретатор выполнит данную строку и отобразит строкой ниже результат своей работы.
Python можно использовать как калькулятор для различных вычислений, а если дополнительно подключить необходимые математические библиотеки, то по своим возможностям он становится практически равным таким пакетам как Matlab, Octave и т.п.
Различные примеры вычислений приведены ниже. Более подробно об арифметических операциях будет рассказано в следующих уроках.
Для выхода из интерактивного режима, наберите команду
В комплекте вместе с интерпретатором Python идет IDLE (интегрированная среда разработки). По своей сути она подобна интерпретатору, запущенному в интерактивном режиме с расширенным набором возможностей (подсветка синтаксиса, просмотр объектов, отладка и т.п.).
Для запуска IDLE в Windows необходимо перейти в папку Python в меню “Пуск” и найти там ярлык с именем “IDLE (Python 3.5 XX-bit)”.
В Linux оболочка IDLE по умолчанию отсутствует, поэтому ее предварительно нужно установить. Для этого, если у вас Ubuntu, введите в командной строке (для Python 3.4):
В результате IDLE будет установлен на ваш компьютер.
Для запуска оболочки, введите:
Ниже представлен внешний вид IDLE в ОС Linux.
Пакетный режим
Теперь запустим Python в режиме интерпретации файлов с исходным кодом (пакетный режим). Создайте файл с именем test.py, откройте его с помощью любого текстового редактора и введите следующий код:
Пример работы программы приведен в окне ниже.
Резюме
Для запуска Python в интерактивном режиме необходимо набрать в командной строке имя исполняемого файла интерпретатора (python или python3) или запустить IDLE (интегрированную среду разработки).
Для запуска Python в пакетном режиме введите в командной строке имя интерпретатора и имя файла с программой на языке Python через пробел:
P.S.
Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.
>>
Python. Урок 2. Запуск программ на Python : 24 комментария
После python test.py этого у меня программа стоит и ничего не делает.
Hello World вывел, а это нет.
Если в файле у вас:
a = int(input())
print(a**2)
то после запуска, вам нужно ввести число, которое потом будет возведено в квадрат.
Эту программу для начала нужно создать, открывает программу которую ты напишешь 🙂
хрен что работает. ни одна программа не запустилась! Ни одна! в любом случае какая-то ошибка! версия питона 3.6.7
>>> print(“Hello, World!”)
File “”, line 1
print(“Hello, World!”)
^
SyntaxError: invalid character in identifier
Там проблема с кавычками была, они отрендерились несколько странно) Сейчас поменяли!
С остальными проблем не должно быть (в данном уроке))
Здравствуйте. В pycharm создал pyhton file с кодом print (“Hello, world”). Всё работает. Но пытался открыть файл через python в командной строке и пишет “python: can’t open file ‘Boyyy1.py’: [Errno 2] No such file or directory”. Скорее всего я неправильно файл создал. Можете помочь?
Если через командную строку запускаете, то вы должны находиться в каталоге, в котором лежит ваш Boyyy1.py, иначе нужно полный (или относительный) путь до файла указывать.
Мне не помог полный путь, очень актуальна проблема путей ведь хрен знает в каком каталоге находиться python, да ещё и зарытый между папок, неудобно.
Полный путь указываю, а он меня так посылает 🙁 C:\Users\Оксана\AppData\Local\Programs\Python\Python38-32\test.py SyntaxError: unexpected character after line continuation character
И сохранённые файлы не открывает ни в интерактивном, не в пакетном режиме. Открытие идет и тут же сворачивается.
Да же херня и у меня
Может, лучше такую программу:
print(“Enter a number=”)
a = int(input())
print(“get this number squered=”)
print(a**2)
#Она хоть говорить будет…
Полезно, кардинально отличается. Столько работ по улучшению!
a = int(input(‘enter a number=’))
print(‘get this number squered=’ + str(a**2))
#как тебе такое
Yevgeny, или так:
a=int(input(‘Enter a number=’))
print (‘get this number squered=’ + str(a**2))
В командной строке перешел на папку где лежит исполняемый файл и набрал python hello.py. Вот что выдало:
C:\MyScripts> python hello.py
File “hello.py”, line 1
Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32
^
SyntaxError: invalid syntax
Набрал код:
Print(123)
Ввожу в командную строку >python test.ry
командная строка пишет слово Python и всё. Помомгите
привет Игнат, я не программист, только начинаю учиться )
у тебя расширение файла неверное записано: надо test.py, а ты пишешь test.ry
Если у меня Windows XP, то использовать отладчик не светит?
Как запустить скрипт на Python
Каждый разработчик на Python должен знать, как запускать скрипты, потому что это единственный способ проверить работоспособность написанного кода. Чтобы запустить скрипт, программист может использовать:
Каждый способ имеет свои особенности, поэтому его выбор зависит не только от предпочтений или привычек, но и от того, в какой степени программист хочет контролировать параметры запуска скрипта.
Интерпретатор и его установка
Интерпретатор — это программное обеспечение, которое позволяет запускать скрипты Python. С технической точки зрения интерпретатор является связующим слоем между кодом на Python и машинным кодом.
Интерпретатор используется каждый раз, когда программист запускает код: в интерактивном режиме, через командную строку, всегда.
Если же у вас старая версия Windows и предыдущий вариант не работает, то надо зайти на официальный сайт Python, скачать и запустить установочный файл и следовать инструкциям по установке. Не забудьте при установке выставить галку, чтобы Python был добавлен в Windows PATH.
В Linux обычно ничего устанавливать не требуется, так как Pyton включают в его дистрибутив.
Интерактивный запуск кода Python
Для работы с маленькими кусками кода программисты часто используют режим интерактивного сеанса. В этом режиме введенный код на Python сразу интерпретируется и исполняется. То есть не нужно создавать файл и запускать его.
Чтобы войти в интерактивный режим в Windows, можно использовать один из нескольких способов:
Чтобы запустить интерактивный сеанс в Linux, необходимо выполнить в терминале команду «python3» или «python2».
Примеры работы в интерактивном сеансе
Интерактивный сеанс является необходимым и важным инструментом. С его помощью программист может быстро проверить код, в работе которого он не уверен.
Код исполняется сразу после ввода, однако это не значит, что в терминале можно использовать только однострочные операции, например:
В командной строке также можно писать функции, циклы, условия. Кроме того, в интерактивном сеансе можно импортировать модули.
Командная строка автоматически определяет, когда нужно написать многострочную инструкцию, например, если программист хочет объявить функцию, он пишет:
«>>>» — это просто отображаемый в командной строке символ, свидетельствующий о возможности ввода. Многоточие показывает, что ввод не закончен, тем самым разрешая программисту писать сложные конструкции в несколько строк.
Следующая команда вызывает только что созданную функцию:
Запуск скрипта Python через командную строку
Интерактивный сеанс позволяет тестировать код, но как только он завершится, весь код потеряется.
Поэтому большая часть кода пишется с использованием текстовых файлов, которые имеют расширение «.py». Они могут быть созданы с помощью любого текстового редактора, подойдет даже обычный блокнот.
Предположим, что наш скрипт выводит на экран надпись «Hello World!», то есть код будет следующим:
Запишем его в файл world.py. Запустить его через командную строку можно несколькими способами.
Команда «python» и запуск по имени
Самый простой и практичный запуск скриптов — использовать команду «python». Нужно открыть командную строку и написать «python имя_скрипта». Важно, чтобы скрипт находился либо в директории, из которой запущена командная строка, либо в каталоге, прописанном в переменной среды PATH. Тогда запуск пройдет успешно:
Если на компьютере установлены две версии Python, (а на Linux обычно так и есть) следует использовать команды «python3» и «python2» для вызова соответствующей версии.
В последних версиях Windows можно запустить скрипт Python просто введя его имя:
В этом случае запустится новая консоль, выведется в неё сообщение и закроется. Мы ничего не успеем увидеть. Чтобы этого не было, можно в конец файла добавить input(), чтобы скрипт ожидал ввода пользователя.
Такой запуск возможен благодаря тому, что Windows автоматически определяет, какую программу (в данном случае интерпретатор Python) использовать для запуска файла.
В Linux также можно воспользоваться этим способом, но в начале скрипта Python в первой строке должен быть указан полный путь к интерпретатору:
После этого нужно разрешить запуск файла (сделать его исполняемым).
Теперь достаточно просто запустить скрипт, введя в терминал его имя, перед которым добавить «./»:
Запуск модуля
Иногда возникает необходимость запустить модуль, как скрипт. Однако при использовании обычного способа командная строка выдает предупреждение о том, что файл нельзя открыть.
Чтобы запустить модуль, как исполняемый файл, нужно воспользоваться командой:
Перенаправление вывода
Если результаты выполнения скрипта нужно где-то сохранить, чтобы использовать их в последующих операциях, программист может перенаправить вывод из консоли в, например, файл. Для этого используется оператор «>». Вернём содержимое нашего файла world.py в изначальный вариант:
Теперь запустим. Полная команда выглядит так:
Здесь output.txt – это текстовый файл, в который записывается результат выполнения скрипта.
Операция может использоваться как в операционной системе Windows, так и в Unix-подобных системах. Если файла, в который должен вывестись результат, не существует, система создаст его автоматически.
При использовании оператора «>» содержимое файла, в который выводятся данные, полностью перезаписывается. Если уже имеющиеся данные нужно сохранить, используют оператор «>>».
Например, у нас уже есть файл output.txt со строкой приветствия (после того как мы его создали предыдущей командой). Теперь допишем в него ещё одну строку:
Таким образом можно последовательно запустить несколько раз этот скрипт и в файл будут дописываться всё новые строки приветствия.
Использование IDLE
IDLE – это официальная интегрированная среда разработки, поставляемая вместе с интерпретатором Python.
Она позволяет работать в интерактивном режиме, писать и запускать скрипты. Кроме того, IDLE поддерживает подсветку синтаксиса и отладку.
Работа в интерактивном режиме не отличается от того, что было описано для командной строки Windows и терминала Linux. Программист пишет код, который сразу исполняется интерпретатором.
Запуск скрипта
Запуск скрипта из интерактивного режима
Иногда при работе в интерактивном режиме возникает необходимость проверить код какого-либо скрипта. Не обязательно использовать терминал или отдельно открывать скрипт в IDLE, его можно запустить прямо из интерактивного сеанса различными способами.
import
При импорте модуля в скрипт выполняется весь содержащийся в нём код. Если модуль содержит только объявления функций и классов и присвоение значений, программист ничего не увидит. Но если модуль выводит что-то на экран, работает с файлами, то это отобразится при импорте.
Таким образом можно импортировать модуль в интерактивном режиме, чтобы увидеть результаты его выполнения, однако сделать это можно только один раз, потому что при последующих импортах в пределах одного сеанса ничего не произойдет, так как при каждом новом импорте интерпретатор обращается к модулю, записанному в кэш, а не к реальному файлу.
Здесь импортировал библиотеку sys для того чтобы в пути прописать полный путь до моего модуля. Видно, что приветствие отображается только после первой попытки импорта моего модуля.
Оператор exec() сначала читает содержимое модуля, затем отправляет его в функцию, которая выполняет код.
Синтаксис выглядит так:
Запуск скриптов из текстового редактора или IDE
Если программист работает над крупным проектом, ему не достаточно стандартной IDLE и блокнота. В этом случае используется либо текстовый редактор, либо полноценная среда разработки IDE.
Для большинства текстовых редакторов разработаны плагины, позволяющие запускать скрипты Python одним кликом мыши. Сейчас очень популярен текстовый редактор VS Code. Вот здесь можно описано как с ним работать.
Большинство IDE поддерживают запуск скриптов по умолчанию. Обычно это делается с помощью встроенной в панель инструментов кнопки «Запуск/отладка». Эту функцию поддерживают такие IDE, как Eclipse, PyCharm, Eric, NetBeans и другие.
Запуск скриптов через менеджер файлов
В любой операционной системе с графическим интерфейсом можно запустить скрипт Python двойным кликом по файлу. Однако здесь есть свои нюансы, во-первых, система должна связывать расширение «.py» с интерпретатором Python, во-вторых, такой способ ограничивает программиста, не позволяя указать дополнительные параметры.
Этот способ можно использовать не только в Windows, но и Unix-подобных системах. Однако после запуска окно консоли будет сразу закрываться. Чтобы решить эту проблему, в конце скрипта добавляется оператор input(), таким образом консоль не закроется, пока не получит ввод от пользователя.
Ещё одной проблемой является невозможность обнаружения и отладки ошибок. Даже если программист добавил оператор input(), при возникновении ошибки в процессе выполнения скрипта консоль закроется.
Это самый ненадёжный способ, который накладывает на программиста много ограничений. Лучше отказаться от идеи пользоваться файловым менеджером во время отладки скриптов и вернуться к стандартным способам запуска через командную строку.
Выполнение команд оболочки с помощью Python
Вместо сценариев оболочки, которые могут стать сложными и утомительными, мы можем использовать Python для автоматизации команд оболочки. В этом уроке мы узнаем, как запускать их ради масштабируемости и ремонтопригодности проектов Python.
Выполнение команд оболочки с помощью Python
Вступление
Повторяющиеся задачи созрели для автоматизации. Обычно разработчики и системные администраторы автоматизируют рутинные задачи, такие как проверка работоспособности и резервное копирование файлов с помощью сценариев оболочки. Однако по мере того, как эти задачи становятся все более сложными, скрипты оболочки могут становиться все труднее поддерживать.
К счастью, мы можем использовать Python вместо shell-скриптов для автоматизации. Python предоставляет методы для выполнения команд оболочки, предоставляя нам ту же функциональность, что и скрипты этих оболочек. Изучение того, как выполнять команды оболочки на Python, открывает нам возможность автоматизировать компьютерные задачи структурированным и масштабируемым способом.
В этой статье мы рассмотрим различные способы выполнения команд оболочки в Python и идеальную ситуацию для использования каждого метода.
Использование os.system для выполнения команды
Давайте начнем с создания нового файла Python под названием echo_adelle.py и введите следующее:
В вашем терминале запустите этот файл с помощью следующей команды, и вы увидите соответствующий вывод:
Давайте создадим новый файл с именем cd_return_codes.py и введите следующее:
В этом скрипте мы создаем две переменные, которые хранят результат выполнения команд, изменяющих каталог на домашнюю папку, и на папку, которая не существует. Запустив этот файл, мы увидим:
Выполнение команды с подпроцессом
Модуль subprocess – это рекомендуемый Python способ выполнения команд оболочки. Это дает нам гибкость подавлять вывод команд оболочки или цепочку входов и выходов различных команд вместе, в то же время обеспечивая аналогичный опыт os.system() для основных случаев использования.
Запустите этот файл, и вывод вашей консоли будет похож на:
Мы используем subprocess.run() с довольно большим количеством команд, давайте пройдемся по ним:
Запуск этого файла приводит к следующим выводам:
В вашем терминале запустите этот файл. Вы увидите следующую ошибку:
Запуск команды с помощью Popen
Допустим, мы не хотим ждать, пока наша команда оболочки завершит выполнение, чтобы программа могла работать над другими вещами. Как он узнает, когда команда оболочки завершит выполнение?
Какой из них я должен использовать?
Вот таблица с некоторыми различиями в удобстве использования, которые вы также можете использовать для обоснования своего решения:
нет | Требует разбора аргументов | да | да |
да | Ждет команды | да | нет |
нет | Связывается с stdin и stdout | да | да |
возвращаемое значение | Возвращается | объект | объект |
Вывод
Используя эти методы, какую внешнюю задачу вы бы запустили через Python?