Как запустить программу python Windows

Содержание

Программисты Python должны знать все возможные способы запуска сценариев или кода Python. Это единственный способ проверить, работает ли код так, как мы хотим. Интерпретатор Python отвечает за выполнение скриптов Python.

Что такое интерпретатор в Python?

Интерпретатор в Python – это часть программного обеспечения, которое взаимосвязано работает между программой Python и компьютерным оборудованием.

Здесь мы описываем серию способов запуска скриптов Python.

  • Командная строка операционной системы или терминал.
  • Интерактивный режим Python.
  • IDE или текстовый редактор.
  • Файловый менеджер системы.

Командная строка операционной системы или терминал

FAQ по Python в Windows

Это не всегда простой вопрос.Если вы уже знакомы с запуском программ из командной строки Windows,то все покажется очевидным;в противном случае вам может понадобиться немного больше подсказок.

Если вы не используете какую-либо интегрированную среду разработки, вам придется вводить команды Windows в так называемое «окно командной строки». Обычно такое окно можно создать из панели поиска, выполнив поиск cmd . Вы должны быть в состоянии распознать, когда вы открыли такое окно, потому что вы увидите «командную строку» Windows, которая обычно выглядит так:

[Python] Как открывать .py файл двойным кликом в редакторе IDLE на Windows

Буква может быть другой,и после нее может быть что-то еще,так что вы можете увидеть что-то вроде:

D:YourNameProjectsPython>

в зависимости от того,как был настроен ваш компьютер и что еще вы недавно делали с ним.Как только вы запустили такое окно,вы уже на пути к запуску программ Python.

Вы должны понимать, что ваши сценарии Python должны обрабатываться другой программой, называемой интерпретатором Python . Интерпретатор читает ваш сценарий, компилирует его в байт-коды, а затем выполняет байт-коды для запуска вашей программы. Итак, как организовать интерпретатор для обработки вашего Python?

Во-первых, вам нужно убедиться, что ваше командное окно распознает слово «py» как инструкцию для запуска интерпретатора. Если вы открыли командное окно, попробуйте ввести команду py и нажать клавишу возврата:

C:UsersYourName> py

Вы должны увидеть что-то вроде:

Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)] on win32 Type «help», «copyright», «credits» or «license» for more information. >>>

Вы запустили интерпретатор в «интерактивном режиме».Это означает,что вы можете вводить утверждения или выражения Python в интерактивном режиме,и они будут выполняться или оцениваться,пока вы ждете.Это одна из самых сильных возможностей Python.Проверьте это,введя несколько выражений по своему выбору и посмотрев результаты:

>>> print(«Hello») Hello >>> «Hello» * 3 ‘HelloHelloHello’

Многие используют интерактивный режим как удобный, но хорошо программируемый калькулятор. Если вы хотите завершить интерактивный сеанс Python, вызовите функцию exit() или удерживайте Ctrl удерживайте клавишу нажатой во время ввода Z ,затем нажмите кнопку » Enter «,чтобы вернуться в командную строку Windows.

Уроки Python / Запуск внешних приложений

Вы также можете обнаружить, что у вас есть запись в меню «Пуск», например «Пуск» «Программы» ‣ Python 3.x ‣ Python (командная строка), в результате чего вы видите приглашение >>> в новом окне. В этом случае окно исчезнет после того, как вы вызовете функцию exit() Ctrl — Z символ;Windows выполняет в окне единственную команду «python» и закрывает его при завершении работы интерпретатора.

Теперь, когда мы знаем, что команда py распознана, вы можете передать ей свой скрипт Python. Вам нужно будет указать либо абсолютный, либо относительный путь к скрипту Python. Допустим, ваш скрипт Python находится на вашем рабочем столе и называется hello.py , а ваша командная строка хорошо открыта в вашем домашнем каталоге, поэтому вы видите что-то похожее на:

C:UsersYourName>

Итак, теперь вы попросите команду py передать ваш скрипт Python, набрав py и путь к вашему скрипту:

C:UsersYourName> py Desktophello.py hello

Как сделать скрипты Python исполняемыми?

В Windows стандартный установщик Python уже связывает расширение .py с типом файла (Python.File) и дает этому типу файла команду открытия, которая запускает интерпретатор ( D:Program FilesPythonpython.exe «%1» %* ). Этого достаточно, чтобы скрипты выполнялись из командной строки как «foo.py». Если вы предпочитаете выполнять скрипт, просто набрав «foo» без расширения, вам нужно добавить .py в переменную среды PATHEXT.

Читайте также:
Как добавить программу в список исключений антивируса Windows 10

Почему Python иногда так долго запускается?

Обычно Python запускается очень быстро под Windows,но иногда появляются сообщения о том,что Python вдруг начинает долго запускаться.Это вызывает еще большее недоумение,поскольку Python прекрасно работает на других системах Windows,настроенных идентично.

Проблема может быть вызвана неправильной конфигурацией программного обеспечения для проверки вирусов на проблемной машине.Известно,что некоторые антивирусные сканеры вносят накладные расходы при запуске на два порядка,если сканер настроен на мониторинг всех чтений из файловой системы.Попробуйте проверить конфигурацию программного обеспечения для сканирования вирусов на ваших системах,чтобы убедиться,что они действительно настроены одинаково.McAfee,когда он настроен на сканирование всех операций чтения файловой системы,является особым нарушителем.

Как сделать исполняемый файл из сценария Python?

См. Как я могу создать автономный двоичный файл из скрипта Python? для списка инструментов, которые можно использовать для создания исполняемых файлов.

*.pyd — это то же самое, что и DLL?

Да, файлы .pyd являются dll, но есть несколько отличий. Если у вас есть DLL с именем foo.pyd , она должна иметь функцию PyInit_foo() . Затем вы можете написать Python «import foo», и Python будет искать foo.pyd (а также foo.py, foo.pyc) и, если найдет, попытается вызвать PyInit_foo() для его инициализации. Вы не связываете свой .exe с foo.lib, так как это приведет к тому, что Windows потребует присутствия DLL.

Обратите внимание, что путь поиска для foo.pyd — PYTHONPATH, а не путь, который Windows использует для поиска foo.dll. Кроме того, foo.pyd не обязательно должен присутствовать для запуска вашей программы, тогда как если вы связали свою программу с dll, dll требуется. Конечно, foo.pyd требуется, если вы хотите сказать import foo . В DLL привязка объявляется в исходном коде с помощью __declspec(dllexport) . В .pyd привязка определяется в списке доступных функций.

Как встроить Python в приложение Windows?

Встраивание интерпретатора Python в приложение Windows можно описать следующим образом:

  1. Не встраивайте Python напрямую в свой .exe-файл. В Windows Python должен быть DLL для импорта модулей, которые сами являются DLL. (Это первый ключевой недокументированный факт.) Вместо этого ссылка на pythonNN.dll ; обычно он устанавливается в C:WindowsSystem . NN — это версия Python, число, такое как «33» для Python 3.3. Вы можете ссылаться на Python двумя разными способами. Связывание во время загрузки означает связывание с pythonNN.lib , а связывание во время выполнения означает связывание с pythonNN.dll . (Общее примечание: pythonNN.lib — это так называемая «импортная библиотека», соответствующая pythonNN.dll . Она просто определяет символы для компоновщика.) Связывание во время выполнения значительно упрощает параметры связывания; все происходит во время выполнения. Ваш код должен загрузить pythonNN.dll с помощью подпрограммы Windows LoadLibraryEx() .Код также должен использовать подпрограммы доступа и данные в pythonNN.dll (то есть Python C API) с использованием указателей, полученных с помощью подпрограммы Windows GetProcAddress() .Макросы могут сделать использование этих указателей прозрачным для любого кода C, который вызывает подпрограммы в C API Python.
  2. Если вы используете SWIG, легко создать «модуль расширения» Python, который сделает данные и методы приложения доступными для Python. SWIG позаботится обо всех мелких деталях за вас. В результате получается код C, который вы связываете с вашим .exe-файлом (!) Вам _не_ нужно создавать DLL-файл, и это также упрощает компоновку.
  3. SWIG создаст функцию init (функцию на языке C),имя которой зависит от имени модуля расширения.Например,если имя модуля-leo,функция init будет называться initleo().Если вы используете теневые классы SWIG,как и должно быть,функция init будет называться initleoc().Это инициализирует скрытый вспомогательный класс,используемый теневым классом. Причина,по которой вы можете подключить код на языке Си в шаге 2 к вашему .exe-файлу,заключается в том,что вызов функции инициализации эквивалентен импорту модуля в Python! (Это второй ключевой недокументированный факт).
  4. Короче говоря,вы можете использовать следующий код для инициализации интерпретатора Python с вашим модулем расширения.

#include .h> . Py_Initialize(); // Инициализируем Python. initmyAppc(); // Инициализируем (импортируем) вспомогательный класс. PyRun_SimpleString(«import myApp»); // Импортируем теневой класс.
Py_INCREF(Py_None); _resultobj = Py_None; return _resultobj;

Увы,Py_None-это макрос,который расширяется до ссылки на сложную структуру данных под названием _Py_NoneStruct внутри pythonNN.dll.Опять же,этот код будет неудачным в среде с несколькими компиляторами.Замените этот код на:

return Py_BuildValue(«»);

Как сделать так,чтобы редакторы не вставляли вкладки в исходный текст Python?

FAQ не рекомендует использовать вкладки, а руководство по стилю Python, PEP 8 , рекомендует 4 пробела для распространяемого кода Python; это также режим python по умолчанию в Emacs.

В любом редакторе смешивать табуляцию и пробелы-плохая идея.MSVC не отличается в этом отношении,и легко настраивается на использование пробелов:Возьмите Tools ‣ Options ‣ Tabs,и для типа файла «Default» установите «Tab size» и «Indent size» на 4,и выберите радиокнопку «Insert spaces».

Python вызывает IndentationError или TabError , если смешанные табуляции и пробелы вызывают проблемы с начальными пробелами. Вы также можете запустить модуль tabnanny для проверки дерева каталогов в пакетном режиме.

Как проверить нажатие клавиши без блокировки?

Используйте модуль msvcrt . Это стандартный модуль расширения для Windows. Он определяет функцию kbhit() , которая проверяет наличие нажатия на клавиатуру, и getch() , которая получает один символ, не повторяя его.

Читайте также:
Программа для настройки изображения монитора Windows 10

Как решить проблему отсутствия api-ms-win-crt-runtime-l1-1-0.dll?

Это может происходить в Python 3.5 и более поздних версиях при использовании Windows 8.1 или более ранних версий без установки всех обновлений. Сначала убедитесь, что ваша операционная система поддерживается и обновлена, а если это не решит проблему, посетите страницу поддержки Microsoft, чтобы получить инструкции по ручной установке обновления C Runtime.

Python 3.11

Как применить метод к последовательности объектов?

Используйте понимание списка: это из-за комбинации того факта, что расширенные операторы присваивания и различия между изменяемыми неизменяемыми объектами

Как перегрузить конструкторы (или методы)в Python?

Этот ответ на самом деле относится к методам, но вопрос обычно возникает в первую очередь в контексте конструкторов.

Стандартная подсказка Python интерактивной оболочки.
Лучшие методы работы с аннотациями

Ларри Хастингс Аннотация Этот документ предназначен для инкапсуляции лучших практик работы с аннотациями dicts.

Источник: runebook.dev

FAQ по Python в Windows¶

Как запустить программу на Python под Windows?¶

Это не всегда простой вопрос. Если вы уже знакомы с запуском программ из командной строки Windows, то все покажется очевидным; в противном случае вам может понадобиться немного больше подсказок.

Если вы не используете какую-либо интегрированную среду разработки, вам придется набирать команды Windows в так называемом «окне командной строки». Обычно вы можете создать такое окно в строке поиска, набрав cmd . Вы должны быть в состоянии распознать, когда вы запустили такое окно, потому что вы увидите «командную строку» Windows, которая обычно выглядит следующим образом:

Буква может быть другой, и после нее может быть что-то еще, так что вы вполне можете увидеть что-то вроде:

D:YourNameProjectsPython>

в зависимости от того, как был настроен ваш компьютер и что еще вы недавно делали с ним. Как только вы запустили такое окно, вы уже на пути к запуску программ Python.

Вы должны понимать, что ваши сценарии Python должны быть обработаны другой программой, называемой интерпретатором Python. Интерпретатор читает ваш сценарий, компилирует его в байткоды, а затем выполняет байткоды для запуска вашей программы. Итак, как организовать работу интерпретатора с вашим Python?

Во-первых, необходимо убедиться, что командное окно распознает слово «py» как команду запуска интерпретатора. Если вы открыли командное окно, попробуйте ввести команду py и нажать клавишу return:

C:UsersYourName> py

Вы должны увидеть что-то вроде:

Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)] on win32 Type «help», «copyright», «credits» or «license» for more information. >>>

Вы запустили интерпретатор в «интерактивном режиме». Это означает, что вы можете вводить утверждения или выражения Python в интерактивном режиме, и они будут выполняться или оцениваться, пока вы ждете. Это одна из самых сильных возможностей Python. Проверьте это, введя несколько выражений по своему выбору и посмотрев результаты:

>>> print(«Hello») Hello >>> «Hello» * 3 ‘HelloHelloHello’

Многие люди используют интерактивный режим как удобный, но в то же время высокопрограммируемый калькулятор. Когда вы захотите завершить интерактивный сеанс Python, вызовите функцию exit() или удерживайте клавишу Ctrl , пока вводите Z , затем нажмите клавишу « Enter », чтобы вернуться в командную строку Windows.

Вы также можете обнаружить, что у вас есть пункт меню Пуск, например Start ‣ Programs ‣ Python 3.x ‣ Python (command line) , который приводит к появлению подсказки >>> в новом окне. Если это так, окно исчезнет после вызова функции exit() или ввода символа Ctrl-Z ; Windows выполняет в этом окне единственную команду «python» и закрывает его при завершении работы интерпретатора.

Теперь, когда мы знаем, что команда py распознается, вы можете передать ей свой сценарий Python. Вы должны указать абсолютный или относительный путь к сценарию Python. Допустим, ваш сценарий Python находится на рабочем столе и имеет имя hello.py , а командная строка открыта в вашем домашнем каталоге, поэтому вы видите что-то похожее на:

C:UsersYourName>

Итак, теперь вы попросите команду py передать ваш сценарий в Python, набрав py , за которым следует путь к вашему сценарию:

C:UsersYourName> py Desktophello.py hello

Как сделать скрипты Python исполняемыми?¶

В Windows стандартная программа установки Python уже связывает расширение .py с типом файла (Python.File) и дает этому типу файла команду open, которая запускает интерпретатор ( D:Program FilesPythonpython.exe «%1» %* ). Этого достаточно, чтобы скрипты исполнялись из командной строки как „foo.py“. Если вы хотите иметь возможность выполнить сценарий, просто набрав „foo“ без расширения, вам нужно добавить .py к переменной окружения PATHEXT.

Почему Python иногда так долго запускается?¶

Обычно Python запускается очень быстро под Windows, но иногда появляются сообщения о том, что Python вдруг начинает долго запускаться. Это вызывает еще большее недоумение, поскольку Python прекрасно работает на других системах Windows, настроенных идентично.

Проблема может быть вызвана неправильной конфигурацией программного обеспечения для проверки вирусов на проблемной машине. Известно, что некоторые антивирусные сканеры вносят накладные расходы при запуске на два порядка, если сканер настроен на мониторинг всех чтений из файловой системы. Попробуйте проверить конфигурацию программного обеспечения для сканирования вирусов на ваших системах, чтобы убедиться, что они действительно настроены одинаково. McAfee, когда он настроен на сканирование всех операций чтения файловой системы, является особым нарушителем.

Читайте также:
Программа обновления bios asus из под Windows 10

Как сделать исполняемый файл из сценария Python?¶

Список инструментов, которые можно использовать для создания исполняемых файлов, см. в Как создать отдельный двоичный файл из сценария Python? .

Является ли файл *.pyd тем же самым, что и DLL?¶

Да, файлы .pyd — это DLL, но есть несколько отличий. Если у вас есть DLL с именем foo.pyd , то у нее должна быть функция PyInit_foo() . Вы можете написать Python «import foo», и Python будет искать foo.pyd (а также foo.py, foo.pyc) и, если найдет его, попытается вызвать PyInit_foo() для его инициализации. Вы не связываете свой .exe с foo.lib, так как это заставит Windows потребовать присутствия DLL.

Обратите внимание, что путь поиска foo.pyd — это PYTHONPATH, а не тот же путь, который Windows использует для поиска foo.dll. Кроме того, foo.pyd не обязательно должен присутствовать для запуска вашей программы, тогда как если вы связали свою программу с dll, то dll необходима. Конечно, foo.pyd необходим, если вы хотите сказать import foo . В DLL связь объявляется в исходном коде с помощью __declspec(dllexport) . В .pyd связь определяется в списке доступных функций.

Как встроить Python в приложение Windows?¶

Встраивание интерпретатора Python в приложение Windows можно описать следующим образом:

  1. Не встраивайте Python непосредственно в ваш .exe-файл. В Windows Python должен быть DLL, чтобы обрабатывать импорт модулей, которые сами являются DLL. (Это первый ключевой недокументированный факт.) Вместо этого ссылайтесь на python NN .dll ; обычно он устанавливается в C:WindowsSystem . NN — это версия Python, число, такое как «33» для Python 3.3. Ссылаться на Python можно двумя разными способами. Связывание во время загрузки означает связывание с python NN .lib , а связывание во время выполнения означает связывание с python NN .dll . (Общее примечание: python NN .lib — это так называемый «импорт lib», соответствующий python NN .dll . Она просто определяет символы для компоновщика). Связывание во время выполнения значительно упрощает параметры связей; все происходит во время выполнения. Ваш код должен загружать python NN .dll с помощью подпрограммы Windows LoadLibraryEx() . Код также должен использовать процедуры доступа и данные в python NN .dll (то есть, C API Python), используя указатели, полученные с помощью процедуры Windows GetProcAddress() . Макросы могут сделать использование этих указателей прозрачным для любого кода на C, который вызывает процедуры в C API Python.
  2. Если вы используете SWIG, легко создать «модуль расширения» Python, который сделает данные и методы приложения доступными для Python. SWIG выполнит за вас практически все сложные детали. В результате вы получите код на языке C, который вы подключите в ваш .exe файл (!) Вам _не_ нужно создавать DLL файл, и это также упрощает подключение.
  3. SWIG создаст функцию init (функцию на языке C), имя которой зависит от имени модуля расширения. Например, если имя модуля — leo, функция init будет называться initleo(). Если вы используете теневые классы SWIG, как и должно быть, функция init будет называться initleoc(). Это инициализирует скрытый вспомогательный класс, используемый теневым классом. Причина, по которой вы можете подключить код на языке Си в шаге 2 к вашему .exe-файлу, заключается в том, что вызов функции инициализации эквивалентен импорту модуля в Python! (Это второй ключевой недокументированный факт).
  4. Короче говоря, вы можете использовать следующий код для инициализации интерпретатора Python с вашим модулем расширения.

#include «python.h» . Py_Initialize(); // Initialize Python. initmyAppc(); // Initialize (import) the helper class. PyRun_SimpleString(«import myApp»); // Import the shadow class.
Py_INCREF(Py_None); _resultobj = Py_None; return _resultobj;

Увы, Py_None — это макрос, который расширяется до ссылки на сложную структуру данных под названием _Py_NoneStruct внутри pythonNN.dll. Опять же, этот код будет неудачным в среде с несколькими компиляторами. Замените этот код на:

return Py_BuildValue(«»);

Как сделать так, чтобы редакторы не вставляли вкладки в исходный текст Python?¶

FAQ не рекомендует использовать табуляцию, а руководство по стилю Python, PEP 8, рекомендует использовать 4 пробела для распределенного кода Python; это также значение по умолчанию в Emacs python-mode.

В любом редакторе смешивать табуляцию и пробелы — плохая идея. MSVC не отличается в этом отношении, и легко настраивается на использование пробелов: Возьмите Tools ‣ Options ‣ Tabs , и для типа файла «Default» установите «Tab size» и «Indent size» на 4, и выберите радиокнопку «Insert spaces».

Python выдает сообщение IndentationError или TabError , если смешанные табуляции и пробелы вызывают проблемы при выводе пробельных символов. Вы также можете запустить модуль tabnanny для проверки дерева каталогов в пакетном режиме.

Как проверить нажатие клавиши без блокировки?¶

Используйте модуль msvcrt . Это стандартный модуль расширения, специфичный для Windows. Он определяет функцию kbhit() , которая проверяет наличие удара по клавиатуре, и getch() , которая получает один символ без эха.

Источник: django.fun

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru