Глиф Учебники

Как запустить файл .py

Справочник · Python · 2 минуты чтения

Откройте терминал в папке с программой и наберите python и имя файла. В Windows:

Командная строка
cd C:\projects\hello
python main.py

В Linux и macOS:

Bash
cd ~/projects/hello
python3 main.py

cd переходит в папку, где лежит файл. Вместо C:\projects\hello подставьте свою папку. Если в пути есть пробелы, возьмите его в кавычки: cd "C:\Учебные программы\hello".

Как быстро открыть терминал в нужной папке

can't open file … No such file or directory

Текст
python: can't open file 'C:\\projects\\main.py': [Errno 2] No such file or directory

Python не нашёл файл: терминал открыт в другой папке, или имя набрано неверно. Посмотрите, какие файлы есть в текущей папке: командой dir в Windows или ls в Linux и macOS. Частая причина в Windows — Проводник скрывает расширения, и файл на самом деле называется main.py.txt. Включите показ расширений в Проводнике и переименуйте файл.

Окно сразу закрывается

Если запустить файл .py двойным щелчком, Windows открывает окно, выполняет программу и закрывает окно, как только программа закончилась. Результат или сообщение об ошибке мелькнёт и пропадёт. Два решения:

Для второго способа последней строкой программы ставят input — окно закроется, только когда нажмут Enter:

Python
print("Готово")
input("Нажмите Enter, чтобы закрыть окно")

Если окно закрывается мгновенно даже с этой строкой, программа падает с ошибкой раньше — запустите её из командной строки и прочитайте сообщение (как — в справке Как читать ошибку Python).

Запуск без python перед именем в Linux

В Linux программу можно сделать исполняемой. Первой строкой файла ставят строку #! (её называют shebang) — она говорит системе, чем запускать файл:

Python
#!/usr/bin/env python3
print("Привет")

Затем файлу дают право на запуск и запускают его:

Bash
chmod +x main.py
./main.py

Аргументы командной строки

Слова, набранные после имени файла, программа получает в списке sys.argv. Например, python main.py Минск 5 даёт список, где sys.argv[0] — имя программы, sys.argv[1] — "Минск", sys.argv[2] — "5" (строкой):

Python
import sys

if len(sys.argv) > 1:
    print("Привет,", sys.argv[1])
else:
    print("Имя не передано")

Интерактивный Python

Команда python без имени файла открывает интерактивный режим с приглашением >>>: команды выполняются сразу по одной. Выход — exit() или клавиши Ctrl+Z и Enter в Windows, Ctrl+D в Linux и macOS. В этом режиме нельзя запускать команды терминала (cd, pip install, python main.py) — для них сначала выйдите из Python.