Думаю всем известно что Python интерпретируем язык. Это значит, что написанная программа не компилируется, а исполняется другой программой — интерпретатором. Еще его называют скриповым языком. Написали скрипт, а Питон его исполняет.
Но что нам мешает, скомпилировать интерпретатор и код программы в один .exe файл и радоваться жизни. Именно так и поступили умные ребят и сделали утилиту PyInstaller .
Установка и компиляция.
Ставица это чудо легко, это же ведь опять программа на Python )))
pip install pyinstaller
Все что нужно нам теперь, это запустить его из командной строки.
Обратите внимание,
pyinstaller
будет находиться в папке со всеми утилитами Питона.C:UsersROOTAppDataLocalProgramsPythonPython36Scripts
pyinstaller --onedir --onefile --name=testfile "D:Test Python1234.py"
- -onedir : Создайте пакет из одной папки, содержащий исполняемый файл (по умолчанию).
- -onefile : Создайте исполняемый файл с одним файлом в комплекте.
- -name=testfile : Имя .exe файла.
- -noconsole : Не предоставляют окно консоли для стандартного ввода-вывода.
Утилита находиться в папочке с Питонов.
В папке dist
вы найдете приложение, которое вы можете запускать на любом компьютере.
Вот так все просто и легко. Конечно это базовые сценарий , на сайте есть документация к утилите. Где все возможности описаны более подробно. Вы можете создать файл и под UNIX и под Mac OC. Успехов.
Ошибка в тексте? Выделите её и нажмите «Ctrl + Enter»
Как запускать python приложения на windows , учитывая что на этом ПК нет интерпретатора ?
задан 18 дек 2011 в 12:35
Даниил КолясниковДаниил Колясников
4413 золотых знака10 серебряных знаков26 бронзовых знаков
1
Никак. В любом случаи или придётся ставить интерпретатор (тогда скрипты сразу по умолчанию с расширением .py буду запускаться интерпретатором), или создавать контейнер, который будет включать в себя интерпретатор. Например py2exe.
ответ дан 18 дек 2011 в 13:02
cx_freeze
или pyinstaller
или py2exe
вам помогут.
ответ дан 19 дек 2011 в 11:00
можно использовать библиотеки питона (его возможность встраиваться в программы) и откомпилировать приложение
ответ дан 18 дек 2011 в 13:35
stribogstribog
8597 серебряных знаков17 бронзовых знаков
Kaura
Что с ними нужно сделать, чтоб они запускались на компе на котором не установлен ПИтон.
С ними ни чего не нужно делать.У вас это файл с расширением “.py”.Соответственно на компьютере у вас есть программа которая умеет читать файл с этим расширением,в данном случае это Python.
аналогия такая,есть файл.mp3,чтобы его воспроизвести у вас должен быть установлен проигрыватель который умеет его читать.Вы же не скачиваете каждую песню вместе с проигрывателем,иначе у вас будут песни и куча проигрывателей.
Что делать?
для начала думаю ровным счетом ничего,если хотите показать кому-то свое творение,говорите ему что нужна программа для его воспроизведения(интерпретатор).Если ваша программа представляет какую-то ценность для него,он установит интерпретатор,если нет то увы…Допустим у меня есть python, я скачал ваш файл,клацнул на него и он запустился…Я его увидел…Profit
второй вариант теоретический
пишется некий сценарий(понятно что не на pythone),который делает следующее
-проверяет есть ли в ОС нужный Pyhton:
если нет:
*сценарий автоматического скачивания с оф.сайта
*сценарий автоматической установки
* сценарий который еще какой,нужен
иначе:
-проверяет есть ли нужные частные библиотеки
если нет:
*скачивает устанавливает
-устанавливает основной скрипт
-сценарий как (
кассета вставляется в мафон
)python будет читать скрипт
-ярлык по которому клацает пользователь
-сценарий если что-то пошло не так(описание ошибки)
все это в установочном exe-шнике для windows к примеру.
Есть ли что-то подобное,не знаю
Код, написанный на языке Python, может храниться в редакторе кода, IDE или файле. И он не будет работать, если не знать, как его правильно запускать.
В этом материале рассмотрим 7 способов запуска кода, написанного на Python. Они будут работать вне зависимости от операционной системы, среды Python или местоположения кода.
Python-код можно запустить одним из следующих способов:
- С помощью командной строки операционной системы (shell или терминал);
- С помощью конкретной версии Python или Anaconda;
- Использовать Crontab;
- Запустить код с помощью другого Python-скрипта;
- С помощью файлового менеджера;
- Использовать интерактивный режим Python;
- Использовать IDE или редактор кода.
Запуск Python-кода интерактивно
Для запуска интерактивной сессии нужно просто открыть терминал или командную строку и ввести python
(или python3
в зависимости от версии). После нажатия Enter запустится интерактивный режим.
Вот как запустить интерактивный режим в разных ОС.
Интерактивный режим в Linux
Откройте терминал. Он должен выглядеть приблизительно вот так :
После нажатия Enter будет запущен интерактивный режим Python.
Интерактивный режим в macOS
На устройствах с macOS все работает похожим образом. Изображение ниже демонстрирует интерактивный режим в этой ОС.
Интерактивный режим в Windows
В Windows нужно открыть командную строку и ввести python
. После нажатия Enter появится приблизительно следующее:
Запуск Python-скриптов в интерактивном режиме
В таком режиме можно писать код и исполнять его, чтобы получить желаемый результат или отчет об ошибке. Возьмем в качестве примера следующий цикл.
Этот код должен выводить целые числа от 0 до 5. В данном случае вывод — все, что появилось после print(i)
.
Для выхода из интерактивного режима нужно написать следующее:
И нажать Enter. Вы вернетесь в терминал, из которого и начинали.
Есть и другие способы остановки работы с интерактивным режимом Python. В Linux нужно нажать Ctrl + D, а в Windows — Ctrl + Z + Enter.
Стоит отметить, что при использовании этого режима Python-скрипты не сохраняются в локальный файл.
Как выполняются Python-скрипты?
Отличный способ представить, что происходит при выполнении Python-скрипта, — использовать диаграмму ниже. Этот блок представляет собой скрипт (или функцию) Python, а каждый внутренний блок — строка кода.
Первая строка (кода):
Вторая = строка кода
Третья строка > кода:
Четвертая (строка == кода)
Пятая строка кода
При запуске скрипта интерпретатор Python проходит сверху вниз, выполняя каждую из них. Именно таким образом происходит выполнение кода.
Но и это еще не все.
Блок-схема выполнения кода интерпретатором
- Шаг 1: скрипт или .py-файл компилируется, и из него генерируются бинарные данные. Готовый файл имеет расширение .pyc или .pyo.
- Шаг 2: генерируется бинарный файл. Он читается интерпретатором для выполнения инструкций.
Это набор инструкций, которые приводят к финальному результату.
Иногда полезно изучать байткод. Если вы планируете стать опытным Python-программистом, то важно уметь понимать его для написания качественного кода.
Это также пригодится для принятия решений в процессе. Можно обратить внимание на отдельные факторы и понять, почему определенные функции/структуры данных работают быстрее остальных.
Как запускать Python-скрипты?
Для запуска Python-скрипта с помощью командной строки сначала нужно сохранить код в локальный файл.
Возьмем в качестве примера файл, который был сохранен как python_script.py. Сохранить его можно вот так:
- Создать Python-скрипт из командной строки и сохранить его,
- Создать Python-скрипт с помощью текстового редактора или IDE и сохранить его. Просто создайте файл, добавьте код и сохраните как «python_script.py»
Сохранить скрипт в текстовом редакторе достаточно легко. Процесс ничем не отличается от сохранения простого текстового файла.
Но если использовать командную строку, то здесь нужны дополнительные шаги. Во-первых, в самом терминале нужно перейти в директорию, где должен быть сохранен файл. Оказавшись в нужной папке, следует выполнить следующую команду (на linux):
sudo nano python_script.py
После нажатия Enter откроется интерфейс командной строки, который выглядит приблизительно следующим образом:
Теперь можно писать код и с легкостью сохранять его прямо в командной строке.
Как запускать скрипт в командной строке?
Скрипты можно запустить и с помощью команды Python прямо в интерфейсе терминала. Для этого нужно убедиться, что вы указали путь до него или находитесь в той же папке. Для выполнения скрипта (python_script.py) откройте командную строку и напишите python3 python_script.py
.
Замените python3
на python
, если хотите использовать версию Python2.x.
Вот что будет храниться в самом файле python_script.py:
for i in range(0,5):
print(i)
Вывод в командной строке будет следующим:
~$ python python_script.py
0
1
2
3
4
Предположим, что нужно сохранить вывод этого года (0, 1, 2, 3, 4). Для этого можно использовать оператор pipe
.
Это делается вот так:
python python_script.py > newfile.txt
После этого будет создан файл «newfile.txt» с сохраненным выводом.
Как выполнять код интерактивно
Есть больше 4 способов запустить Python-скрипт интерактивно. Рассмотрим их все подробно.
Использование import для запуска скриптов
Импорт модулей для загрузки скриптов и библиотек используется постоянно. Можно даже написать собственный скрипт (например code1.py) и импортировать его в другой файл без необходимости повторять то же самое.
Вот как нужно импортировать code1.py в новом скрипте.
Но таким образом импортируется все содержимое файла code1.py. Это не проблема до тех пор, пока не появляется необходимость, в том, чтобы код был оптимизирован и быстро работал.
Предположим, что внутри файла есть маленькая функция, например chart_code1()
, которая рисует красивый график. И нужна только она. Вместо того чтобы взывать весь скрипт целиком, можно вызвать ее.
Вот как это обычно делается.
>>> from code1 import chart_code1
Теперь появляется возможность использовать chart_code1
в новом файле так, будто бы эта функция была написана здесь.
Использование importlib для запуска кода
import_module()
из importlib позволяет импортировать и исполнять другие Python-скрипты.
Это работает очень просто. Для скрипта code1.py нужно сделать следующее:
import importlib
import.import_module('code1')
И нет необходимости добавлять .py в import_module()
.
Разберем случай, когда есть сложная структура папок, и нужно использовать importlib. Предположим, что структура следующая:
level1 | +– __init__.py – level2 | +– __init__.py – level3.py
В таком случае, написав, например, importlib.import_module("level3")
, вы получите ошибку. Это называется относительным импортом и работает за счет явного использования относительного пути.
Так, для запуска скрипта level3.py можно написать так:
importlib.import_module('.level3', 'level1.level')
# или так
importlib.import_module('level1.level2.level3')
Запуск кода с помощью runpy
Модуль runpy
ищет и исполняет Python-скрипт без импорта. Он также легко используется, ведь достаточно просто вызывать имя модуля в run_module()
.
Вот как, например, выполнить code1.py с помощью runpy.
>>> import runpy
>>> runpy.run_module(mod_name="code1")
Запуск кода динамически
Рассмотрим функцию exec()
, которая также используется для динамического выполнения скриптов. В Python2 эта функция была инструкцией.
Вот как она помогает выполнять код динамически на примере строки.
>>> print_the_string = 'print("Выполнен динамический код")'
>>> exec(print_the_string)
Однако этот способ уже устарел. Он медленный и непредсказуемый, а Python предлагает массу других вариантов.
Запуск скриптов Python из текстового редактора
Для запуска кода с помощью текстового редактора можно использовать команду по умолчанию (run) или горячие клавиши (Function + F5 или просто F5 в зависимости от ОС).
Вот пример того, как код выполняется в IDLE.
Но стоит обратить внимание на то, что в данном случае нет контроля над виртуальной средой, как это бывает при исполнении с помощью интерфейса командной строки.
Поэтому IDE и продвинутые редакторы текста куда лучше базовых редакторов.
Запуск кода из IDE
IDE можно использовать не только для запуска Python-кода, но также для выбора среды и отладки.
Интерфейс этих программ может отличаться, но список возможностей должен совпадать: сохранение, запуск и редактирование кода.
Запуск кода из файлового менеджера
Что если бы был способ запустить Python-скрипт двойным кликом по файлу с ним. Это можно сделать, создав исполняемый файл. Например, в случае с Windows для этого достаточно создать файл с расширением .exe и запустить его двойным кликом.
Как запустить Python-скрипт из другого кода
Хотя об этом явно не говорилось, можно прийти к выводу, что в случае с Python есть возможность:
- Запустить скрипт в командной строке, и этот скрипт будет вызывать другой код;
- Использовать модуль для загрузки другого скрипта.
Основные моменты
- Python-код можно писать в интерактивном и не-интерактивном режимах. При выходе из интерактивного режима вы теряете данные. Поэтому лучше использовать
sudo nano your_python_filename.py
. - Код можно запускать с помощью IDE, редактора кода или командной строки.
- Есть разные способы импорта кода и использования его из другого скрипта. Выбирайте вдумчиво, рассматривая все преимущества и недостатки.
- Python читает написанный код, транслирует его в байткод, который затем используется как инструкция — все это происходит при запуске скрипта. Поэтому важно учиться использовать байткод для оптимизации Python-кода.
7 ответов
python интерпретируется, поэтому он не будет работать без python. Однако это не означает, что должен быть установлен python, вы можете включить копию в каталог своей программы или даже связать свою программу и среду выполнения python с одним файлом.
Компиляторы
C и С++ создают машинный код (в большинстве случаев C-интерпретаторы существуют, как и C и С++ → p-code и байт-коды). Но большинство программ на C и С++ используют разделяемые библиотеки и не будут запускаться, если не присутствует общая библиотека (опять же, ее не нужно устанавливать, можно поместить в каталог программы). Также обычно есть опция сборки (статическая привязка) для включения всех необходимых библиотек в основной файл программы.
Но результат по-прежнему ограничен конкретной комбинацией архитектуры ОС и ЦП. Для запуска программы на более чем одной платформе всегда требуется поддержка времени выполнения платформы.
Ben Voigt
04 фев. 2011, в 04:21
Поделиться
Посмотрите на py2exe и py2app для Windows и Mac. Однако Mac OS OSX и самые современные Linuces имеют Python.
Приложения C/С++ обычно скомпилируются для исполняемых файлов, которые работают на одной архитектуре машины/ОС (например, 32-разрядная Windows или 64-разрядная OSX); такой исполняемый файл может работать на некоторых, но не на всех машинах. Например, 64-битные Windows или OSX могут запускать программы, созданные либо для 32-битного, либо 64-битного вкуса их соответствующих ОС.
Russell Borogove
04 фев. 2011, в 04:15
Поделиться
Я дам практическое применение отправки кода на удаленную машину для запуска. Обычно это делается в проекте BOINC, инициативе сообщества GRID, которая выпускает такие драгоценные камни, как SETI @Home. Обычно приложениями являются скомпилированные версии С++ с многоплатформенными двоичными файлами для x86-linux, AMD64-linux, win32, win64 и универсальных бинарных файлов Mac OS (с ppc, x86 и 64-разрядными). Это очень много для распространения, но современная система make может легко автоматизировать все это (например, CMake).
Многие люди предпочитают метод WORA (пишите один раз в любом месте) и придерживайтесь языка на основе VM, такого как Java или Python. В этом случае проекты boinc распространяют версию VM, а также код для запуска на нем. Java VM, обремененная проблемами лицензирования, Python VM намного приятнее. Boinc пытается внедрить Python VM в различные клиенты BOINC, чтобы упростить распространение приложений GRID на основе Python.
Надеюсь, это даст вам представление о распределении приложений и поможет принять обоснованное решение.
whatnick
04 фев. 2011, в 06:33
Поделиться
Если вы написали программу на любом языке, и эта программа не скомпилирована для машинного кода, то на компьютере пользователя необходимо преобразовать его в машинный код до его запуска.
В случае JavaScript это «что-то» часто является веб-браузером. В случае Python, который часто является автономным интерпретатором, хотя его можно скомпилировать:
Возможно ли скомпилировать Python для машинного кода?
Однако, чтобы быть ясным: просто потому, что ваша программа не скомпилирована в код imachine, не означает, что она будет интерпретироваться. Программы, написанные на С#, обычно скомпилированы в MSIL, который скомпилирован в машинный код при первом запуске программы. Java-программы также скомпилируются при первом запуске.
ClosureCowboy
04 фев. 2011, в 04:23
Поделиться
Вы можете использовать py2exe для распространения программ Python в Windows.
http://www.py2exe.org/
Pedro Matiello
04 фев. 2011, в 03:15
Поделиться
Существует py2exe
, который может создать исполняемый файл, который будет запускаться на другом компьютере без этого пользователя, устанавливающего обычный пакет Python.
Да, C и С++ (как минимум, нормально) реализованы как компиляторы, которые могут создавать автономные исполняемые файлы.
Изменить: в типичном случае реализация C или С++ свяжет функции из стандартной библиотеки, которые используются в программе, в исполняемый файл. Это может (и часто делает) включать совсем немного, которое не используется напрямую, но по-прежнему не включает в себя (где угодно близко) всю стандартную библиотеку.
В большинстве случаев вы также можете создать исполняемый файл, который зависит от реализации стандартной библиотеки, уже присутствующей на целевой машине в виде общей библиотеки, DLL и т.д. (разные ОС используют разные имена). Это уменьшает размер исполняемого файла, но увеличивает головные боли, связанные с распределением; Я использую его для кода, который я компилирую на своей собственной машине, но обычно избегаю его, когда/если я распространяю исполняемый файл кому-либо еще. Учитывая текущие цены на жесткий диск, экономия дискового пространства редко стоит головной боли.
Jerry Coffin
04 фев. 2011, в 03:13
Поделиться
Посмотрите на Pyinstaller для автономных исполняемых файлов без необходимости интеграции с python. Ну, кроме критических библиотек, чтобы он мог работать!
Он недавно обновил, усовершенствовал и даже поддерживает интеграцию cython, хотя это может стать сложным. Вы можете сжать файлы, которые будут меньше, или если у вас есть несколько исполняемых файлов, вы можете связать их с одним файлом, чтобы уменьшить размер.
Вы также можете создать единый исполняемый файл с установленным python. Не используйте anaconda, хотя (используйте по умолчанию python 3.6), чтобы ваша программа была очень маленькой по размеру.
Надеюсь, что это поможет.
Tetora
31 окт. 2017, в 07:58
Поделиться
Ещё вопросы
- 0Создать настраиваемое поле с помощью angularJS
- 1Прикрепить json string vuejs2 webpack
- 0Привязка не обновляется при изменении исходного объекта. Является ли копирование единственным / лучшим решением?
- 1Цепочка работы только для сокращения в Hadoop
- 0PHP cURL «Неизвестная ошибка протокола SSL при подключении к»
- 0Загрузка двумерного массива
- 0Event Listener меняет переменную в зависимости от кликов с течением времени
- 1Десериализация 2D массива объектов JSON в Java
- 0Установка jqxGrid размера страницы автоматически
- 1Как преобразовать набор данных с несколькими таблицами в общий список
- 1Соответствие регулярного выражения Java для атрибута двойного класса CSS
- 0захватывать несколько снимков в секунду, время использования имени и номер кадра
- 0Как вы загружаете один файл одновременно?
- 0загрузить несколько кадров с контентом
- 0PHP Regex для получения текста между тегами HTML, но не тегами
- 0горизонтальное подменю css не работает
- 1Что на самом деле делает ключевое слово «in», когда используется для проверки, содержит ли последовательность (список, кортеж, строка и т. Д.) Значение. Цикл пока не найдешь значение?
- 0Zend Framework 2 включает
- 0Создается только первое динамически генерируемое поле выбора
- 1не удается импортировать проект sbt с JDK 1.8?
- 0Почему цикл останавливается?
- 0Вызовите функции C ++ из Java-программы, используя JNI
- 0Phonegap и JqueryMobile блокируют события и функции пользовательского интерфейса
- 0Как получить переменную из MVC View в угловой контроллер?
- 0разрешить изменение URI в коде воспламенителя
- 0Как заставить мой заголовок быть сверху?
- 0Изменение цвета div — HTML
- 0Смещение электронной почты в HTML в Outlook 2013?
- 1Как вы фокусируете эмулятор Android разработчика?
- 0Используйте мою переменную php в качестве формулы для вычисления чего-либо
- 0Почему выберите меню $ invalid всегда true?
- 0Основы стеков
- 0Липкий нижний колонтитул с различной высотой содержимого без обновления страницы
- 0Наличие разных действий для каждого переключателя в форме
- 1Получение цвета фона проблемы JButton
- 0Как справиться со смещением часового пояса с помощью летнего времени?
- 0Попытка использовать переменную php в выражении выбора SQL
- 1Доставка тестовых параметров с помощью команды adb shell am start
- 1Добавьте CheckBox в заголовок Datagridview в C # и поменяйте место флажка с помощью полосы прокрутки
- 1Неавторизовать и приложение из учетной записи доступа AccountManager
- 1Булавки Bing Maps не отображаются
- 0Почему я не могу прочитать все Ctrl + «буквы»
- 1Сжатие и растяжение изображения по определенным координатам только с помощью C #
- 1Почему эта задача завершается без задержки?
- 0Добавление данных JSON с использованием jQuery
- 1Могу ли я использовать тот же dbcontext для идентификации asp
- 0Флэш-плеер правой кнопкой мыши не имеет настройки можно нажать
- 1Показать все шаги для преобразования данной строки в другую (анаграммы)
- 0Функции SSL_ * против BIO_ *
- 0Как сделать так, чтобы основной тег div получал большую высоту, если содержимое добавлено в два плавающих элемента div (#content и #sidebar)?
1483 / 457 / 52 Регистрация: 10.04.2009 Сообщений: 7,881 |
|
1 |
|
Как проще всего передать питон файл на компьютер без питона?07.04.2021, 10:37. Показов 2112. Ответов 11
Проще говоря, как проще всего в одну папку к исполняемому файлу положить все библиотеки которые ему нужны и сам питон интерпретатор? Но я не хочу собирать его в exe например с помощью pyinstaller, а просто сложить в одну папку, чтобы запустить на компьютере без питона.
0 |
Йуный падаван 13991 / 8190 / 2480 Регистрация: 21.10.2017 Сообщений: 19,676 |
|
07.04.2021, 11:04 |
2 |
embedded python
0 |
4606 / 2027 / 359 Регистрация: 17.03.2012 Сообщений: 10,081 Записей в блоге: 6 |
|
07.04.2021, 19:40 |
3 |
просто сложить в одну папку Иии?
0 |
1483 / 457 / 52 Регистрация: 10.04.2009 Сообщений: 7,881 |
|
11.04.2021, 10:25 [ТС] |
4 |
Иии? дошли руки, файл start the server.py буду пробовать готовить для использования везде, начал знакомиться с
0 |
Модератор 1351 / 648 / 207 Регистрация: 23.03.2014 Сообщений: 3,053 |
|
11.04.2021, 10:44 |
5 |
0 |
1483 / 457 / 52 Регистрация: 10.04.2009 Сообщений: 7,881 |
|
11.04.2021, 10:46 [ТС] |
6 |
чем отличается ссылка в моём вопросе
дошли руки, файл start the server.py буду пробовать готовить для использования везде, начал знакомиться с с ссылкой в вашем ответе?
https://andreyv.ru/python-embe… henie.html
0 |
1483 / 457 / 52 Регистрация: 10.04.2009 Сообщений: 7,881 |
|
11.04.2021, 11:12 [ТС] |
8 |
там, надеюсь, есть нужная версия. да спасибо, есть такое для винды
0 |
4606 / 2027 / 359 Регистрация: 17.03.2012 Сообщений: 10,081 Записей в блоге: 6 |
|
11.04.2021, 12:59 |
9 |
Ципихович Эндрю, чесгря, не понял, зачем тут сложности с embeddable и чем не подходит обычный. Ну да хозяин — барин.
0 |
1483 / 457 / 52 Регистрация: 10.04.2009 Сообщений: 7,881 |
|
11.04.2021, 13:06 [ТС] |
10 |
чесгря, не понял, зачем тут сложности с embeddable и чем не подходит обычный. Ну да хозяин — барин. ну я Вас за язык не тянул, скачал, там два экзешника
0 |
Йуный падаван 13991 / 8190 / 2480 Регистрация: 21.10.2017 Сообщений: 19,676 |
|
11.04.2021, 13:43 |
11 |
что далее делать? Тебе уж раз сто наверно сказали что делать. Но ты не слушаешь.
0 |
4606 / 2027 / 359 Регистрация: 17.03.2012 Сообщений: 10,081 Записей в блоге: 6 |
|
12.04.2021, 11:08 |
12 |
python.exe-запускаю, там в консоли Ну кагбэ ожидаемо.
что значит как и говорил ранее — ещё 100 вопросов, что далее делать? Передать екзешнику ваш скрипт?
0 |
Каждый разработчик на Python должен знать, как запускать скрипты, потому что это единственный способ проверить работоспособность написанного кода. Чтобы запустить скрипт, программист может использовать:
- Командную строку (терминал).
- Интерактивный режим Python.
- Текстовый редактор или полноценную IDE.
- Менеджер файлов операционной системы (запуск через графический интерфейс).
Каждый способ имеет свои особенности, поэтому его выбор зависит не только от предпочтений или привычек, но и от того, в какой степени программист хочет контролировать параметры запуска скрипта.
Не нужно путать скрипты и модули, хотя различия между ними не велики. Скрипты — это файлы с исполняемым кодом, а модули — файлы, код которых импортируется в скрипты, проще говоря, библиотеки.
Интерпретатор и его установка
Интерпретатор — это программное обеспечение, которое позволяет запускать скрипты Python. С технической точки зрения интерпретатор является связующим слоем между кодом на Python и машинным кодом.
Интерпретатор используется каждый раз, когда программист запускает код: в интерактивном режиме, через командную строку, всегда.
Установить интерпретатор на Windows не сложно, достаточно найти Python в Microsoft Store и установить.
Если же у вас старая версия Windows и предыдущий вариант не работает, то надо зайти на официальный сайт Python, скачать и запустить установочный файл и следовать инструкциям по установке. Не забудьте при установке выставить галку, чтобы Python был добавлен в Windows PATH.
В Linux обычно ничего устанавливать не требуется, так как Pyton включают в его дистрибутив.
Интерактивный запуск кода Python
Для работы с маленькими кусками кода программисты часто используют режим интерактивного сеанса. В этом режиме введенный код на Python сразу интерпретируется и исполняется. То есть не нужно создавать файл и запускать его.
Чтобы войти в интерактивный режим в Windows, можно использовать один из нескольких способов:
- Из меню пуск запустите командную строку «cmd». Затем выполните в ней команду «python». После этого должная отобразиться версия интерпретатора, дата, время и другая информация. Также должны появится несколько символов «>», которые показывают, что можно вводить команды.
- Нажмите сочетание клавиш <Win>+<R>, откроется окно «Выполнить». Введите «python». Должна открыться командная строка с запущенным интерактивным сеансом. В ней также должна быть отображена информация о версии, дате и времени, а также символы «>».
- Возможность работы в интерактивном сеансе также встроена в IDLE. Её можно запустить из меню пуск, набрав в поиске «IDLE» и кликнув по найденному значку. После этого сразу откроется интерактивный сеанс. Преимуществом использования IDLE является подсветка синтаксиса.
Чтобы запустить интерактивный сеанс в Linux, необходимо выполнить в терминале команду «python3» или «python2».
Для выхода из интерактивного режима используются комбинации клавиш: <Ctrl>+<Z> и после этого нажмите <Enter>. Или можно просто прописать в командной строке quit() или exit().
Работать в интерактивном режиме в IDLE можно не только в Windows, но и в Linux, однако в этом нет смысла, потому что терминал Linux достаточно удобен и предоставляет все необходимые инструменты, в отличии от командной строки Windows.
Примеры работы в интерактивном сеансе
Интерактивный сеанс является необходимым и важным инструментом. С его помощью программист может быстро проверить код, в работе которого он не уверен.
Код исполняется сразу после ввода, однако это не значит, что в терминале можно использовать только однострочные операции, например:
>>> a = 2 >>> b = 3 >>> a + b 5 >>> 2 + 3 5 >>> quit()
Обратите внимание, что для вывода результата выражения в терминал в интерактивном сеансе не нужно использовать функцию print().
В командной строке также можно писать функции, циклы, условия. Кроме того, в интерактивном сеансе можно импортировать модули.
Командная строка автоматически определяет, когда нужно написать многострочную инструкцию, например, если программист хочет объявить функцию, он пишет:
>>> def a(): ... for x in range(5): ... print(x, end = " ") ... >>>
«>>>» — это просто отображаемый в командной строке символ, свидетельствующий о возможности ввода. Многоточие показывает, что ввод не закончен, тем самым разрешая программисту писать сложные конструкции в несколько строк.
Не забудьте после того как отобразилось «…» ввести нужное количество пробелов после него! Для выхода из этого режима нажимаем ещё один .
Следующая команда вызывает только что созданную функцию:
>>> a() 0 1 2 3 4 >>>
Индикаторы ввода остались на этой же строке, потому что мы установили разделитесь функции print с помощью аргумента end = " "
.
Запуск скрипта Python через командную строку
Интерактивный сеанс позволяет тестировать код, но как только он завершится, весь код потеряется.
Поэтому большая часть кода пишется с использованием текстовых файлов, которые имеют расширение «.py». Они могут быть созданы с помощью любого текстового редактора, подойдет даже обычный блокнот.
Предположим, что наш скрипт выводит на экран надпись «Hello World!», то есть код будет следующим:
print("Hello World!")
Запишем его в файл world.py. Запустить его через командную строку можно несколькими способами.
Команда «python» и запуск по имени
Самый простой и практичный запуск скриптов — использовать команду «python». Нужно открыть командную строку и написать «python имя_скрипта». Важно, чтобы скрипт находился либо в директории, из которой запущена командная строка, либо в каталоге, прописанном в переменной среды PATH. Тогда запуск пройдет успешно:
D:python>python world.py Hello World!
Если на компьютере установлены две версии Python, (а на Linux обычно так и есть) следует использовать команды «python3» и «python2» для вызова соответствующей версии.
В последних версиях Windows можно запустить скрипт Python просто введя его имя:
D:python>world.py
В этом случае запустится новая консоль, выведется в неё сообщение и закроется. Мы ничего не успеем увидеть. Чтобы этого не было, можно в конец файла добавить input(), чтобы скрипт ожидал ввода пользователя.
Такой запуск возможен благодаря тому, что Windows автоматически определяет, какую программу (в данном случае интерпретатор Python) использовать для запуска файла.
В Linux также можно воспользоваться этим способом, но в начале скрипта Python в первой строке должен быть указан полный путь к интерпретатору:
#!/usr/bin/python3
или
#!/usr/bin/env python3
После этого нужно разрешить запуск файла (сделать его исполняемым).
chmod u+x world.py
Теперь достаточно просто запустить скрипт, введя в терминал его имя, перед которым добавить «./»:
./world.py Hello World!
Запуск модуля
Иногда возникает необходимость запустить модуль, как скрипт. Однако при использовании обычного способа командная строка выдает предупреждение о том, что файл нельзя открыть.
Чтобы запустить модуль, как исполняемый файл, нужно воспользоваться командой:
D:python>python -m world.py Hello World!
Перенаправление вывода
Если результаты выполнения скрипта нужно где-то сохранить, чтобы использовать их в последующих операциях, программист может перенаправить вывод из консоли в, например, файл. Для этого используется оператор «>». Вернём содержимое нашего файла world.py в изначальный вариант:
print("Hello World!")
Теперь запустим. Полная команда выглядит так:
D:python>python world.py > output.txt
Здесь output.txt – это текстовый файл, в который записывается результат выполнения скрипта.
Операция может использоваться как в операционной системе Windows, так и в Unix-подобных системах. Если файла, в который должен вывестись результат, не существует, система создаст его автоматически.
При использовании оператора «>» содержимое файла, в который выводятся данные, полностью перезаписывается. Если уже имеющиеся данные нужно сохранить, используют оператор «>>».
Например, у нас уже есть файл output.txt со строкой приветствия (после того как мы его создали предыдущей командой). Теперь допишем в него ещё одну строку:
D:python>python world.py >> output.txt
Таким образом можно последовательно запустить несколько раз этот скрипт и в файл будут дописываться всё новые строки приветствия.
Использование IDLE
IDLE – это официальная интегрированная среда разработки, поставляемая вместе с интерпретатором Python.
Она позволяет работать в интерактивном режиме, писать и запускать скрипты. Кроме того, IDLE поддерживает подсветку синтаксиса и отладку.
Работа в интерактивном режиме не отличается от того, что было описано для командной строки Windows и терминала Linux. Программист пишет код, который сразу исполняется интерпретатором.
Запуск скрипта
Чтобы запустить скрипт в IDLE, сначала нужно открыть его с помощью «File – Open» или с помощью клавиш <Ctrl>+<O>. Затем его необходимо запустить с помощью «Run – Run Module» или с помощью клавиши <F5>.
При запуске скрипта можно указать пользовательский параметры, для этого используйте «Run – Run… Customized» или комбинация клавиш <Shift>+<F5>. В поле «Command Line Arguments for sys.argv» прописываются нужные аргументы.
Запуск скрипта из интерактивного режима
Иногда при работе в интерактивном режиме возникает необходимость проверить код какого-либо скрипта. Не обязательно использовать терминал или отдельно открывать скрипт в IDLE, его можно запустить прямо из интерактивного сеанса различными способами.
import
При импорте модуля в скрипт выполняется весь содержащийся в нём код. Если модуль содержит только объявления функций и классов и присвоение значений, программист ничего не увидит. Но если модуль выводит что-то на экран, работает с файлами, то это отобразится при импорте.
Таким образом можно импортировать модуль в интерактивном режиме, чтобы увидеть результаты его выполнения, однако сделать это можно только один раз, потому что при последующих импортах в пределах одного сеанса ничего не произойдет, так как при каждом новом импорте интерпретатор обращается к модулю, записанному в кэш, а не к реальному файлу.
Здесь импортировал библиотеку sys для того чтобы в пути прописать полный путь до моего модуля. Видно, что приветствие отображается только после первой попытки импорта моего модуля.
exec()
Оператор exec() сначала читает содержимое модуля, затем отправляет его в функцию, которая выполняет код.
Синтаксис выглядит так:
>>> exec(open('D:\python\world.py').read())
Запуск скриптов из текстового редактора или IDE
Если программист работает над крупным проектом, ему не достаточно стандартной IDLE и блокнота. В этом случае используется либо текстовый редактор, либо полноценная среда разработки IDE.
Для большинства текстовых редакторов разработаны плагины, позволяющие запускать скрипты Python одним кликом мыши. Сейчас очень популярен текстовый редактор VS Code. Вот здесь можно описано как с ним работать.
Большинство IDE поддерживают запуск скриптов по умолчанию. Обычно это делается с помощью встроенной в панель инструментов кнопки «Запуск/отладка». Эту функцию поддерживают такие IDE, как Eclipse, PyCharm, Eric, NetBeans и другие.
Запуск скриптов через менеджер файлов
В любой операционной системе с графическим интерфейсом можно запустить скрипт Python двойным кликом по файлу. Однако здесь есть свои нюансы, во-первых, система должна связывать расширение «.py» с интерпретатором Python, во-вторых, такой способ ограничивает программиста, не позволяя указать дополнительные параметры.
Этот способ можно использовать не только в Windows, но и Unix-подобных системах. Однако после запуска окно консоли будет сразу закрываться. Чтобы решить эту проблему, в конце скрипта добавляется оператор input(), таким образом консоль не закроется, пока не получит ввод от пользователя.
Ещё одной проблемой является невозможность обнаружения и отладки ошибок. Даже если программист добавил оператор input(), при возникновении ошибки в процессе выполнения скрипта консоль закроется.
Это самый ненадёжный способ, который накладывает на программиста много ограничений. Лучше отказаться от идеи пользоваться файловым менеджером во время отладки скриптов и вернуться к стандартным способам запуска через командную строку.