
Запуск Python-скриптов может отличаться в зависимости от операционной системы, настроек среды и поставленных задач. В Linux и macOS достаточно выполнить команду python3 script.py, тогда как в Windows обычно используется py script.py или указание полного пути к интерпретатору. При необходимости можно настроить ассоциацию файлов .py, чтобы запускать их двойным кликом.
Помимо командной строки, существует возможность автоматизировать выполнение через планировщики задач: cron в Unix-системах и Task Scheduler в Windows. Это полезно для регулярного запуска бэкапов, парсеров или сервисных скриптов.
Для разработки удобно использовать интегрированные среды, например PyCharm, VS Code или Thonny. Они позволяют запускать скрипты кнопкой «Run», передавать аргументы и отслеживать переменные во время выполнения. При этом важно учитывать, какая версия Python подключена в настройках проекта, чтобы избежать конфликтов.
Запуск возможен и напрямую из кода: вызовом функции subprocess.run() можно стартовать скрипт из другого Python-файла. Такой способ применяется при создании инструментов, которые комбинируют несколько программ в едином процессе.
Запуск через командную строку с указанием интерпретатора

Для запуска скрипта напрямую укажите путь к интерпретатору Python и имя файла. Пример для Windows:
C:\Python311\python.exe script.py
В Linux или macOS:
/usr/bin/python3 script.py
Если установлено несколько версий Python, указывайте нужный исполняемый файл, чтобы исключить запуск через неверную версию. Проверить доступные версии можно командой where python в Windows или which -a python3 в Linux/macOS.
При передаче аргументов их записывают после имени файла. Например:
python3 script.py input.txt output.txt
Абсолютный путь к интерпретатору полезен при автоматизации и написании батч- или shell-скриптов, так как гарантирует использование конкретной версии Python независимо от переменной окружения PATH.
Использование shebang в начале файла для запуска как программы
#!/usr/bin/env python3
После добавления строки shebang и назначения прав на исполнение файл можно запускать напрямую:
chmod +x script.py
./script.py
Разные варианты записи shebang могут повлиять на поведение программы:
| Вариант | Описание |
|---|---|
#!/usr/bin/python3 |
Жёсткая привязка к конкретному пути интерпретатора. Подходит, если известен точный путь. |
#!/usr/bin/env python3 |
Использует первый найденный в PATH интерпретатор. Универсальнее, особенно в разных системах. |
#!/usr/bin/python |
Может указывать на Python 2 или Python 3 в зависимости от настроек системы. Риск несовместимости. |
Рекомендуется использовать /usr/bin/env python3, так как этот способ учитывает пользовательскую среду и корректно работает при использовании виртуальных окружений.
Передача аргументов скрипту через sys.argv

Модуль sys предоставляет список sys.argv, содержащий аргументы командной строки. Первый элемент – путь к файлу скрипта, все последующие – переданные значения.
Пример:
import sys
print("Имя скрипта:", sys.argv[0])
print("Аргументы:", sys.argv[1:])
Запуск:
python script.py input.txt output.txt
Результат:
Имя скрипта: script.py
Аргументы: ['input.txt', 'output.txt']
Рекомендации:
- Проверяйте количество аргументов перед использованием, чтобы избежать
IndexError. - Все значения в
sys.argvимеют строковый тип, при необходимости выполняйте преобразование вint,floatили другие типы. - Для удобства можно объединять проверку и обработку аргументов с помощью
ifили использоватьtry/exceptпри преобразованиях. - При большом числе аргументов удобнее использовать модули
argparseилиclick, но базовое пониманиеsys.argvважно для минималистичных скриптов.
Запуск модуля с помощью python -m

Команда python -m позволяет запускать модули как скрипты, что особенно удобно для модулей, находящихся в пакетах. Формат команды: python -m module_name. Например, python -m http.server 8000 запускает встроенный HTTP-сервер на порту 8000 без необходимости писать отдельный скрипт.
Важно, что при использовании -m Python ищет модуль в sys.path, а не в текущей директории. Это позволяет корректно запускать пакеты с точечной нотацией: python -m package.subpackage.module.
Для модулей с точкой входа __main__.py команда автоматически вызывает этот файл. Например, при запуске python -m mypackage будет выполнен mypackage/__main__.py.
Для отладки можно комбинировать -m с другими опциями Python, например: python -m pdb module_name запускает модуль в отладчике. Это универсальный способ тестирования пакетов без изменения структуры проекта.
Для удобства разработки рекомендуется использовать виртуальные окружения: python -m venv env создаёт изолированное окружение, что исключает конфликты версий модулей при запуске команд с -m.
Автоматический запуск через планировщик задач или cron
Для Windows автоматический запуск Python-скриптов реализуется через Планировщик задач. Создайте новую задачу, укажите триггер (по расписанию, при запуске системы или входе пользователя) и в поле Действие выберите Запуск программы. В качестве программы укажите путь к интерпретатору Python, например: C:\Python310\python.exe, а в аргументах – путь к скрипту: C:\scripts\myscript.py. Обязательно отметьте опцию Запуск с наивысшими правами, если скрипт требует доступа к системным ресурсам.
Для Linux и macOS используется cron. Отредактируйте таблицу cron через команду crontab -e. Формат строки: минуты часы день_месяца месяц день_недели команда. Пример ежедневного запуска скрипта в 3:30 утра:
30 3 * * * /usr/bin/python3 /home/user/scripts/myscript.py
30 3 * * * /usr/bin/python3 /home/user/scripts/myscript.py >> /home/user/scripts/log.txt 2>&1
Для Windows возможен запуск через PowerShell с аналогичной логикой: powershell -File C:\scripts\myscript.ps1. В cron и Планировщике задач учитывайте окружение: переменные PATH и активные виртуальные окружения Python влияют на успешное выполнение скрипта.
Использование виртуального окружения при запуске
Виртуальное окружение позволяет изолировать зависимости проекта и управлять версиями Python без влияния на глобальные пакеты.
Создание виртуального окружения выполняется командой:
python -m venv myenv– создаёт папкуmyenvс локальной копией интерпретатора и инструментов управления пакетами.
Активация зависит от операционной системы:
- Windows:
myenv\Scripts\activate - macOS/Linux:
source myenv/bin/activate
После активации все установки библиотек через pip будут локальными для окружения:
pip install requests– пакет будет доступен только внутриmyenv.
Запуск Python-скрипта внутри виртуального окружения не отличается от обычного:
python script.py– использует интерпретатор из активного окружения.
Для автоматизации активации и запуска можно использовать скрипты или оболочки:
- Windows:
cmd /k "myenv\Scripts\activate && python script.py" - macOS/Linux:
bash -c "source myenv/bin/activate && python script.py"
Для управления зависимостями рекомендуется использовать requirements.txt:
- Создание:
pip freeze > requirements.txt - Установка:
pip install -r requirements.txt
Удаление окружения сводится к удалению папки с ним. Это полностью очищает все установленные локальные пакеты и интерпретатор.
Запуск внутри интерактивной оболочки Python (REPL, IPython)
Для запуска скрипта внутри стандартного REPL Python используется встроенная функция exec() или команда import. Если файл называется script.py, его можно выполнить так: exec(open("script.py").read()). Этот способ загружает весь код в текущую сессию и позволяет сразу работать с определёнными в скрипте переменными и функциями.
Альтернативно, можно использовать import script. Python выполнит код один раз при первом импорте, а для повторного запуска потребуется importlib.reload(script). Этот метод удобен для тестирования отдельных функций без выхода из интерактивной сессии.
IPython предоставляет расширенные возможности. Команда %run script.py выполняет скрипт в контексте текущей оболочки, сохраняя доступ к глобальным переменным. Опция -i позволяет запустить скрипт с сохранением текущих переменных сессии: %run -i script.py. IPython автоматически отображает возвращаемые значения выражений, что облегчает отладку и анализ данных.
При работе с интерактивной оболочкой важно следить за состоянием пространства имён. Частое использование from module import * может привести к конфликтам имён при повторных запусках. Рекомендуется импортировать только необходимые функции или использовать пространство имён модуля.
Вызов скрипта из другого Python-кода через subprocess
Пример базового вызова:
import subprocess
result = subprocess.run(["python", "script.py"], capture_output=True, text=True)
print(result.stdout)
Для передачи аргументов скрипту достаточно добавить их в список:
subprocess.run(["python", "script.py", "arg1", "arg2"], capture_output=True, text=True)
Если необходимо обрабатывать ошибки, используется check=True, что вызывает исключение CalledProcessError при ненулевом коде возврата:
try:
subprocess.run(["python", "script.py"], check=True)
except subprocess.CalledProcessError as e:
print(f"Ошибка выполнения: {e}")
proc = subprocess.Popen(["python", "script.py"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
stdout, stderr = proc.communicate()
print(stdout)
Использование subprocess обеспечивает гибкий контроль над выполнением скриптов, передачей данных и обработкой ошибок без необходимости модифицировать вызываемый код.
Вопрос-ответ:
Какие способы запуска Python-скрипта существуют из командной строки?
Наиболее распространенный способ — через командную строку или терминал. Для этого нужно открыть терминал, перейти в каталог с вашим скриптом и выполнить команду python имя_файла.py или python3 имя_файла.py, если установлены разные версии Python. Такой метод подходит для быстрых тестов или автоматизации через батники и скрипты оболочки.
Можно ли запускать Python-скрипт напрямую двойным щелчком мыши?
Да, если расширение файла .py связано с интерпретатором Python, скрипт можно запустить двойным щелчком. На Windows часто необходимо создать файл .pyw, чтобы окно терминала не появлялось. На macOS и Linux можно сделать файл исполняемым через команду chmod +x имя_файла.py и добавить шебанг #!/usr/bin/env python3 в начало файла.
Как запускать Python-скрипты из другой программы или IDE?
Практически каждая среда разработки поддерживает запуск скриптов прямо внутри интерфейса. Например, в PyCharm или VS Code можно открыть скрипт и нажать кнопку запуска. Также можно импортировать скрипт как модуль в другой скрипт и вызывать его функции через import имя_скрипта. Такой подход удобен для отладки и повторного использования кода без постоянного вызова через терминал.
Можно ли автоматизировать запуск скрипта Python по расписанию?
Да, на Windows для этого используют Планировщик заданий, где можно указать скрипт и время его запуска. На Linux и macOS часто применяют cron: нужно добавить запись в crontab с указанием пути к скрипту и интерпретатору. Это позволяет выполнять задачи регулярно без ручного запуска и подходит для резервного копирования, обработки данных или отправки отчетов.
