Программа не работает. Что делать?

Моя программа не работает! Что делать? В данной статье я постараюсь собрать наиболее частые ошибки начинающих программировать на python 3, а также расскажу, как их исправлять.
Проблема: Моя программа не запускается. На доли секунды появляется чёрное окошко, а затем исчезает.
Причина: после окончания выполнения программы (после выполнения всего кода или при возникновении исключения программа закрывается. И если вы её вызвали двойным кликом по иконке (а вы, скорее всего, вызвали её именно так), то она закроется вместе с окошком, в котором находится вывод программы.
Решение: запускать программу через IDLE или через консоль.
Проблема: Не работает функция input. Пишет SyntaxError.
Пример кода:
File
Причина: Вы запустили Python 2.
Проблема: Где-то увидел простую программу, а она не работает.
Пример кода:
Ошибка:
Причина: Вам подсунули программу на Python 2.
Решение: Прочитать об отличиях Python 2 от Python 3. Переписать её на Python 3. Например, данная программа на Python 3 будет выглядеть так:
Проблема: TypeError: Can’t convert ‘int’ object to str implicitly.
Пример кода:
Причина: Нельзя складывать строку с числом.
Решение: Привести строку к числу с помощью функции int(). Кстати, заметьте, что функция input() всегда возвращает строку!
Проблема: SyntaxError: invalid syntax.
Пример кода:
Ошибка:
Причина: Забыто двоеточие.
Проблема: SyntaxError: invalid syntax.
Пример кода:
Ошибка:
Причина: Забыто равно.
Проблема: NameError: name ‘a’ is not defined.
Пример кода:
Причина: Переменная "a" не существует. Возможно, вы опечатались в названии или забыли инициализировать её.
Решение: Исправить опечатку.
Проблема: IndentationError: expected an indented block.
Пример кода:
Причина: Нужен отступ.
Проблема: TabError: inconsistent use of tabs and spaces in indentation.
Пример кода:
Ошибка:
Причина: Смешение пробелов и табуляции в отступах.
Решение: Исправить отступы.
Проблема: UnboundLocalError: local variable ‘a’ referenced before assignment.
Пример кода:
Ошибка:
Причина: Попытка обратиться к локальной переменной, которая ещё не создана.
Проблема: Программа выполнилась, но в файл ничего не записалось / записалось не всё.
Пример кода:
Причина: Не закрыт файл, часть данных могла остаться в буфере.
Проблема: Здесь может быть ваша проблема. Комментарии чуть ниже 🙂
Также вам может быть полезно это описание:
Для вставки кода на Python в комментарий заключайте его в теги
- Модуль csv - чтение и запись CSV файлов
- Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
- Онлайн-обучение Python: сравнение популярных программ
- Книги о Python
- GUI (графический интерфейс пользователя)
- Курсы Python
- Модули
- Новости мира Python
- NumPy
- Обработка данных
- Основы программирования
- Примеры программ
- Типы данных в Python
- Видео
- Python для Web
- Работа для Python-программистов
- Сделай свой вклад в развитие сайта!
- Самоучитель Python
- Карта сайта
- Отзывы на книги по Python
- Реклама на сайте
Как запустить скрипт на Python
Начинающий разработчик на Python, помимо синтаксиса и основных правил использования операторов этого языка, должен уметь запускать код на исполнение. Ведь только так можно понять, работает ли написанный вами скрипт, или в нем содержатся ошибки. Рассмотрим подробнее, как можно запустить скрипты в терминале операционной системы, в интегрированной среде разработки или просто из интерфейса ОС. Это позволит вам выбрать подходящий вариант и повысить эффективность своей работы.
Интерпретатор Python
Рассматриваемый язык программирования является одним из самых прогрессивных на текущий момент. Он позволяет быстро и эффективно решать задачи в самых разных областях. Однако под термином Python понимают также интерпретатор, то есть программу на компьютере, которая позволяет запускать на исполнение написанные скрипты. Она представляет собой дополнительный программный слой между аппаратным обеспечением ПК и кодом.
Существует несколько интерпретаторов:
- написанные на языке программирования С;
- написанные на языке программирования Java;
- написанные на языке Python;
- программы, реализованные в среде .NET.

Выбор конкретного варианта для конечного пользователя значения не имеет. Независимо от вида программы, написанный код будет выполняться именно так, как предусмотрено правилами этого языка.
Запуск возможен двумя способами: как готовая к использованию программная последовательность (скрипт или модуль) или как отдельные куски кода, которые вводятся прямо в окно программы.
Интерактивный запуск кода
Для тестирования отдельных команд можно использовать интерпретатор в режиме интерактивного сеанса. Для этого необходимо открыть командную строку операционной системы и ввести команду, которая запускает интерпретатор.
Для ОС Linux это будет выглядеть следующим образом:
$ python3 Python 3.6.7 (default, Oct 22 2018, 11:32:17) [GCC 8.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
Теперь можно вводить команды, которые будут выполняться сразу после этого. Минус подобного подхода в том, что вся введенная последовательность не сохраняется после закрытия текущей сессии.
Интерактивное исполнение кода необходимо для того, чтобы немедленно протестировать фрагмент написанного кода. Кроме того, его можно использовать в процессе обучения для проверки действий тех или иных операторов «на лету». Этот способ интерпретации команд позволяет попробовать нужные вам функции языка, не прибегая к написанию отдельных скриптов для этого.
Выйти из интерактивного режима можно с помощью команды quit(), или просто закрыв окно терминала в Windows.
Для открытия терминала или командной строки перед запуском самого интерпретатора необходимо:
- В Windows нажать комбинацию клавиш «Флажок» + «R», после чего ввести команду cmd и нажать на кнопку «ОК» в диалоговом окне.
- В Linux или других подобных операционных системах доступ к командной строке предоставляется с помощью дополнительной программы. Можно использовать xterm или Konsole.
- В macOS для получения доступа к терминалу необходимо выбрать меню «Приложения», после чего перейти в раздел «Утилиты» и кликнуть на элементе «Терминал».
Как работает интерпретатор Python для скриптов
Запуск на исполнение написанных скриптов или модулей производится в пакетном режиме. И выполняется по сложной схеме, которая состоит из следующих этапов:
- Последовательная обработка всех операторов, которые записаны в скрипте.
- Компиляция исходного хода в промежуточный формат. Интерпретатор создает байт-код, который представляет собой язык программирования низкого уровня, независимый от платформы и операционной системы. Байт-код необходим для оптимизации процесса выполнения скрипта.
- Исполнение полученного кода. На этом этапе вступает в действие виртуальная машина Python (PVM), которая циклично перебирает каждый оператор из скрипта и запускает его на исполнение. Как будто вы вводите каждую команду последовательно в интерактивном интерпретаторе.
Запуск скриптов в командной строке
В интерактивном режиме, который обсуждался выше, можно записывать и выполнять любое количество строк кода. Но после закрытия окна терминала они не сохраняются. Поэтому реальные программы на Python пишутся в виде скриптов и представляют собой обычные текстовые файлы. Чтобы избежать путаницы при их хранении, им присваиваются расширения .py или .piw.
Создавать текстовый файл можно с помощью любого редактора, в том числе Notepad. Однако лучше использовать более продвинутые решения, например Sublime Text. Для примера возьмем наиболее простой скрипт, с которого начинается знакомство с любым языком программирования.
#!/usr/bin/env python3 print('Hello World!')
Файл можно сохранить в вашем рабочем каталоге с любым именем и расширением .py.
Чтобы запустить скрипт на исполнение, нужно использовать интерпретатор языка программирования и в качестве дополнительного параметра указать имя созданного вами файла.
$ python3 hello.py Hello World!
В приведенном выше примере файл был назван «hello.py». После ввода команды нужно нажать клавишу «Ввод», и на экране появится результат работы скрипта. То есть надпись «Привет, Мир» или классическое английское «Hello World»!
Если файл с программой сохранен не в каталоге с интерпретатором, нужно указывать путь к нему.
Переназначение устройства вывода информации
При исполнении программного кода на Python иногда необходимо сохранять результаты, которые отображает на экране программа. Они в дальнейшем анализируются для поиска ошибок или других целей. В этом случае скрипт необходимо запускать следующей командой:
$ python3 hello.py > output.txt
По результатам работы скрипта создается файл с именем output.txt, в который сохраняется все то, что должно было появиться на экране во время работы в программе. Это стандартный синтаксис, предусмотренный операционной системой.
Если файла с заданным именем не существует, ОС создает его автоматически. Если существует – данные в нем перезаписываются без сохранения предыдущих. В случае, когда есть необходимость в добавлении данных в конец текстового файла, вместо одного значка > необходимо указать два >>.
Прокачать навык программирования на Python и найти работу Junior Python разработчика помогут наши менторы Выбрать ментора
Запуск из командной строки без интерпретатора
В последних версиях операционной системы Windows добавлена возможность запускать скрипты на Python без ввода в командной строке названия программы-интерпретатора. То есть необходимо просто написать название файла с расширением.
C:\devspace> hello.py Hello World!
Обусловлено это тем, что при клике на файле или запуске его из командной строки операционная система автоматически ищет связанное приложение и запускает его. Точно так же вы открываете файлы Word, просто кликнув на них курсором мыши.
В Unix таким образом тоже можно запускать скрипты. Однако для этого в первую строку текстового файла с командами необходимо добавить текст #!/Usr/bin/env python. Он указывает на программу, с помощью которой производится запуск. А интерпретатор языка программирования расценивает строку как комментарий и пропускает её.
Запуск скриптов из интерактивного режима
Находясь в интерактивном режиме (описан в первом разделе), пользователь может загрузить файл с написанной ранее последовательностью команд и запустить его на исполнение. Такой способ можно применять, когда модуль содержит вызовы функций, методов или других операторов, генерирующих текст на экране. В противном случае видимых результатов работы программы не будет.
Запустить скрипт из интерактивного режима можно командой:
>>> import hello Hello World!
Обратите внимание, что эта команда срабатывает один раз за интерактивный сеанс. Поэтому, если внести изменения в файл со скриптом и перезапустить его этой командой, ничего не произойдет.
Заключение
Теперь вы знаете, что команды и скрипты Python можно запускать разными способами и в разных режимах. Это позволит вам выбрать нужный вариант для решения конкретной задачи, увеличить скорость своей работы, сделать ее продуктивной и гибкой.
© Copyright 2014 — 2024 mkdev | Privacy Policy
Часто задаваемые вопросы об использовании Python в Windows
Есть ряд причин, по которым установка может завершиться сбоем. Во многих случаях правильным будет обратиться к разработчику пакета.
Распространенная причина проблем — попытка установки в расположение, для которого у вас нет разрешения на изменение. Например, для расположения установки по умолчанию могут потребоваться права администратора, но по умолчанию в Python их нет. Лучшее решение — создать виртуальную среду и установить пакет в ней.
Некоторые пакеты содержат машинный код, для установки которого требуется компилятор C или C++. Как правило, разработчики пакетов должны публиковать предварительно скомпилированные версии, но зачастую они этого не делают. Некоторые из этих пакетов могут работать, если установить средства сборки для Visual Studio и выбрать вариант C++, но в большинстве случаев необходимо обратиться к разработчику пакета.
Проблемы с установкой pip с WSL
При установке пакета (например, Flask) с использованием pip в подсистеме Windows для Linux (WSL или WSL2), например python3 -m pip install flask , может поступить примерно такое сообщение об ошибке:
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError(': Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/flask/
При исследовании этой проблемы вы можете пойти несколькими путями, ни один из которых не работает с дистрибутивом WSL Linux достаточно продуктивно (предупреждение: в WSL не изменяйте файл resolv.conf , так как он является символьной ссылкой, при изменении которой может возникнуть уязвимость для червей). Если вы не используете неоригинальный брандмауэр, возможное решение — переустановить pip:
sudo apt -y purge python3-pip sudo python3 -m pip uninstall pip sudo apt -y install python3-pip --fix-missing
*Дальнейшее обсуждение в репозитории продуктов WSL на GitHub. Благодаря нашему сообществу пользователей за участие в этой проблеме в документации.
Что такое py.exe?
На компьютере может быть установлено несколько версий Python, потому что вы работаете с различными типами проектов Python. Так как все версии применяют команду python , может быть неясно, какая версия Python используется. В качестве стандарта рекомендуется использовать команду python3 (или python3.7 ), чтобы выбрать конкретную версию.
Средство запуска py.exe автоматически выберет последнюю установленную версию Python. Вы также можете выполнить такие команды, как py -3.7 , чтобы выбрать конкретную версию, или py --list , чтобы узнать, какие версии можно использовать. Но средство запуска py.exe будет действовать только в том случае, если используется версия Python, загруженная с веб-сайта python.org. Если Python установлен из магазина Microsoft Store, то py команда не поддерживается. Для версий Python для Linux, macOS, WSL и Microsoft Store следует использовать команду python3 (или python3.7 ).
Почему при запуске python.exe открывается Microsoft Store?
Чтобы помочь новым пользователям найти хорошую установку Python, мы добавили ярлык для Windows, который сразу же переведет вас к последней версии пакета сообщества, опубликованного в Microsoft Store. Этот пакет можно легко установить без прав администратора, и он заменит команды по умолчанию python и python3 на реальные.
Если запустить исполняемый файл ярлыка с любыми аргументами командной строки, будет возвращен код ошибки, указывающий на то, что Python не установлен. Это необходимо для того, чтобы пакетные файлы и скрипты не открывали приложение Store, если это не требуется.
Если вы устанавливаете Python с помощью установщиков с сайта python.org и выбираете параметр "Добавить в PATH", новая команда python будет иметь приоритет над ярлыком. Обратите внимание, что другие установщики могут добавлять python с более низким приоритетом, чем при использовании встроенного ярлыка.
Вы можете отключить ярлыки, не устанавливая Python. Для этого откройте в меню "Пуск" раздел Manage app execution aliases (Управление псевдонимами выполнения приложений), найдите записи "Установщик приложений" для Python и переключите их в режим "Отключено".
Почему пути к файлам не работают в Python, когда я копирую и вставляю их?
В строках Python для специальных символов используются escape-знаки. Например, чтобы вставить символ новой строки в строку, введите \n . Так как пути к файлам в Windows используют символы обратной косой черты, некоторые части могут быть преобразованы в специальные символы.
Чтобы вставить путь в виде строки в Python, добавьте префикс r . Это означает, что это строка raw , и escape-символы не будут использоваться, за исключением "\" (вам может потребоваться удалить последний символ обратной косой черты в пути). Так что ваш путь может выглядеть следующим образом: r"C:\Users\MyName\Documents\Document.txt" .
При работе с путями в Python рекомендуется использовать стандартный модуль pathlib. Это позволит вам преобразовать строку в расширенный объект Path, который может последовательно выполнять манипуляции с путями, независимо от того, использует ли он символ косой или обратной косой черты, что улучшает выполнение вашего кода в разных операционных системах.
Что такое PYTHONPATH?
Переменная среды PYTHONPATH используется в Python для указания списка каталогов, из которых можно импортировать модули. При запуске можно проверить переменную sys.path , чтобы узнать, по каким каталогам будет выполняться поиск при импорте чего-либо.
Чтобы задать эту переменную из командной строки, используйте: set PYTHONPATH=list;of;paths .
Чтобы задать эту переменную из PowerShell, используйте $env:PYTHONPATH=’list;of;paths’ непосредственно перед запуском Python.
Глобальная установка этой переменной через параметры Переменные средыне рекомендуется, так как она может использоваться любой версией Python вместо нужной.
Где можно найти справку по упаковке и развертыванию?
Служба Azure Kubernetes (AKS) позволяет развертывать контейнерные приложения и управлять ими при масштабировании ресурсов по требованию.
Что делать, если мне нужно работать на разных компьютерах?
Синхронизация параметров позволяет синхронизировать параметры VS Code в разных установках с помощью GitHub. Если вы работаете на разных компьютерах, это обеспечит согласованность среды между ними.
Что делать, если я использую PyCharm, Atom, Sublime Text, Emacs или Vim?
Расширение VS Code Keymaps может содействовать эффективной работе вашей среды.
Насколько сочетания клавиш в Mac соответствуют сочетаниям клавиш в Windows?
Некоторые кнопки клавиатуры и системные сочетания клавиш в компьютерах Windows и Macintosh несколько отличаются друг от друга. В этом руководстве по переходу с Mac на Windows рассматриваются основные сведения.
Установка и запуск Python3 на Windows и MAC OS
Прежде, чем приступить к занятиям, нужно выполнить подготовительную работу, которая нужна, чтобы начать программировать на Python.
В частности, нужно установить интерпретатор Python в вашей операционной системе и проработать цикл написания, сохранения и запуска программы. В качестве программы для тренировки мы возьмем одну строчку кода – print(‘Hello, Python’)
Совет. Создайте специальную директорию, в которой будут находится файлы с кодом python. Файлы с кодом python имеют расширение .py. Постарайтесь называть файлы так, чтобы было понятно, что в них находится. Если через какое-то время вам нужно будет вернуться к примерам или задачам, это сильно поможет.
Установка интерпретатора Python
Внимание! Мы будем изучать Python3, поэтому устанавливать нужно Python3.
Шаг1. Проверить, установлен ли Python3
Прежде всего нужно проверить, установлен ли Python3 на Вашем компьютере. Для этого в командной строке наберите
>python3
Windows и другие:
>python
Подсказка:
1. Если вы не знаете, как попасть в командную строку –смотрите здесь.
2. В Windows в качестве альтернативы командной строке можно использовать PowerShell

Если Python установлен, то вы увидите что-то вроде этого
Вы увидите версию установленного Python. Если это версия 3.x– то ничего делать не нужно, можно сразу перейти к установке редактора.
Внимание! Клавиша ESC в командной строке не работает. Для выхода из интерпретатора Python в командной строке набираем quit() или exit(), обязательно со скобками. Либо просто СNTR+C на Windows, СNTR+D – на Маке.
Шаг 2. Установка Python3
В целом в установке Python нет ничего сложного, для этого посетите официальную станицу загрузки.
Python реализован для нескольких десятков операционных систем, выберите ту, которая установлена у вас.
Для Windows используйте эту инструкцию
Для MAC OS X – загрузка с официального сайта
Внимание! На Маке предустановлен python 2.x. Относящиеся к нему файлы и библиотеки находятся в /System/Library/Frameworks/Python.framework и /usr/bin/python. Их нельзя удалять или модифицировать, так как они используются в некоторых приложениях Apple. У вас будет две версии Python, и об этом нужно помнить.
Шаг 3. Проверить, что Python установлен и работает
После установки убедитесь, что Python установлен – в командной строке набираем
>python3
Windows и другие:
>python
Теперь точно вы должны увидеть что-то вроде этого

Это означает, что система готова и ожидает ваших команд.
В командной строке набираем
>>>print(‘Hello, Python’)
Внимание! В начале пробела быть не должно – иначе интерпретатор выдаст ошибку.
и нажимаем Enter. В ответ интерпретатор должен напечатать тот текст, который указан в кавычках, в данном случае это Hello, Python

Итак, только что вы написали свою первую программу на Python и сделали первый шаг к тому, чтобы стать программистом!
Заодно вы увидели, что такое интерактивный режим – в этом режиме пользователь сообщает системе, что нужно сделать, а система немедленно отвечает.
Не забываем выйти из интерпретатора Python. Для выхода из интерпретатора Python в командной строке набираем quit() или exit(), обязательно со скобками. Либо просто СNTR+C на Windows, СNTR+D – на Маке.
Установка и настройка редактора
Интерпретатор дает возможность привести написанный код в исполнение, а текстовый редактор позволяет нам писать код, выполняя знакомые нам задачи – такие как поиск, замена, вырезка, вставка текста.
У файлов с кодом Python должно быть расширение .py. Намример, mycode.py
Существует достаточно большое количество разнообразных редакторов и IDE (Integrated Development Environment), и со времен вы определитесь, что использовать.
Выбор редактора/IDE – дело индивидуальное, самое главное – чтобы в нем было удобно и комфортно работать вам.
Если у вас есть опыт программирования на других языках, и любимый редактор/IDE, который поддерживает синтаксис Python, то смело пропускайте эту часть, и пользуйтесь тем, что привычно и нравится.
Новичкам рекомендуем начать с “легких” редакторов. Лёгкие редакторы – быстрые, простые и мгновенно стартуют. На практике «лёгкие» редакторы могут обладать большим количеством плагинов, так что граница между IDE и «лёгким» редактором размыта.
- Sublime Text (кросс-платформенный, shareware)
- Atom (кросс-платформенный, бесплатный)
- SciTe простой, легкий и очень быстрый (Windows, бесплатный)
- Notepad++ (Windows, бесплатный).
В настройке редактора для Python важны два момента – установить синтаксис Python и установить табуляцию, равную 4-м пробелам. Это очень важный момент для Python3, так как Python3 не доускает смешение табуляций и пробелов.
Если нужно, вы можете воспользоваться подсказками по настройке NotePad и Sublime.
- Sublime Text(все платформы) – базовая настройка для Python
- NotePad(толькоWindows) – базовая настройка для Python
После установки редактора создайте файл, содержащий одну строку:
print(‘Hello, Python’)
Никаких пробелов в начале быть не должно, строка начинается с первой позиции, иначе будет синтаксическая ошибка.
Сохраняем файл на диске (вы же организовали себе место для хранения python-файлов?). Файл можно назвать как угодно, главное, чтобы расширение было .py. Например, hello.py
Запуск Python
Ну что же, остается выполнить код, который находится в файле.
1. Запуск из IDLE
Самый простой и удобный способ для начинающих запускать Python – через IDLE (Integrated DeveLopment Environment), которая входит комплект поставки Python. Она может использоваться на многих платформах, среди которых есть и Windows, и Mac OS.
Запуск на Windows.
Способ 1. Выбираем нужный файл. Нажимаем правую кнопку мыши и видим

Выбрав Edit with IDLE, попадаем в IDLE:

Как видите, запустить программу при помощи F5. Здесь же можно что-то быстренько подправить, все изменения сохранятся. Если файл параллельно открыт в редакторе, то редактор вас предупредит о том, что в файле были сделаны изменения и предложит их сохранить.
Способ 2.
В панели Widndows находим Python, открываем выпадающее меню и выбираем Python IDLE:

В этом случае откроется терминал. Нужный файл для запуска выбираем через меню File>Open и запускаем файл, выбрав в меню Run>Run Module или нажав F5.
Запуск на MAC OS
Способ 1.
В Finder выбираем нужный файл и дважды кликаем по нему (аналог правого щелчка мыши на Windows). Откроется IDLE:

На Маке shell и редактор открываются в разных окнах. Код запускается из меню Run>Run Module или по нажатию Fn+F5.
Способ 2.
На Launcpad находим IDLE

В этом случае откроется терминал. Нужный файл для запуска выбираем через File>Open и запустить его, выбрав в меню Run>Run Module или нажав FN+F5.
При использовании способа 1 открывается редактор, а при использовании способа 2 – интерпретатор Python
2. Запуск из командной строки
- Открываем командную строку.
- Переходим в директорию, где расположен файл, который нужно запустить.
- Запускаем файл
Windows:
>python ИМЯФАЙЛА.py
MAC OS:
>python3 ИМЯФАЙЛА.py
Как правило, программу Python можно запускать непосредственно из IDE. Как это сделать – зависит от интерфейса конкретной IDE, все они интуитивно понятны и выполнение кода не вызывает никаких сложностей.