Как запустить программу на python: 7 способов запустить Python файл или скрипт на WIndows, Linuxm, MacOS
Запускаем программу на Питоне без Питона
Думаю всем известно что Python интерпретируем язык. Это значит, что написанная программа не компилируется, а исполняется другой программой — интерпретатором. Еще его называют скриповым языком. Написали скрипт, а Питон его исполняет.
Но что нам мешает, скомпилировать интерпретатор и код программы в один .exe файл и радоваться жизни. Именно так и поступили умные ребят и сделали утилиту PyInstaller .
Установка и компиляция.
Ставица это чудо легко, это же ведь опять программа на Python )))
pip install pyinstaller
Все что нужно нам теперь, это запустить его из командной строки.
Обратите внимание,
pyinstaller
будет находиться в папке со всеми утилитами Питона.C:\Users\ROOT\AppData\Local\Programs\Python\Python36\Scripts
pyinstaller --onedir --onefile --name=testfile "D:\Test Python\1234.py"
- -onedir : Создайте пакет из одной папки, содержащий исполняемый файл (по умолчанию).
- -onefile : Создайте исполняемый файл с одним файлом в комплекте.
- -name=testfile : Имя .exe файла.
- -noconsole : Не предоставляют окно консоли для стандартного ввода-вывода.
Утилита находиться в папочке с Питонов.
В папке dist
вы найдете приложение, которое вы можете запускать на любом компьютере.
Вот так все просто и легко. Конечно это базовые сценарий , на сайте есть документация к утилите. Где все возможности описаны более подробно. Вы можете создать файл и под UNIX и под Mac OC. Успехов.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Осваиваем Python. Унция ноль. Введение. / Хабр
Предыстория
Присоединяюсь к MaxElc, DarwinTenk и Devgru 🙂 Начинаю цикл статей посвященных Python. Сам я имею некоторый опыт обращения с PHP и Java. Но каждый раз, при относительном освоении какого-то инструмента — оставалось определённое неудовлетворение им, связанное с чем-то конкретным, и поиски продолжались. На сегодняшний день наиболее близко к идеалу в моих глазах стоит Python. Идеал недостижим — это понятно, посему и у Python есть недостатки. Прежде всего — это скорость выполнения, однако, эта проблема решаема несколькими путями и об этом мы обязательно поговорим чуть позднее.
Сам я начал осваивать Python буквально недавно. Начиная этот цикл статей — я преследую несколько целей. Во-первых, это дополнительная само мотивация + интерактивность, во-вторых, опыт. В-третьих, блуждая по просторам рунета — вижу, что Python куда менее популярен, чем в мире. Ситуацию надо исправлять 🙂
В соответствии с идеологией Python, а именно с тем, что одни из главных его козырей — это быстрота в освоении и скорость разработки, мы достаточно быстро, практически тезисно пронесёмся по основам синтаксиса и построения программ и перейдём к основной цели данного цикла — освоение django.
Итак, мы начинаем.
Архитектура
Python — интерпретируемый, скриптовый язык программирования. При первом запуске скрипта, интерпретатор транслирует инструкции языка в байт-код, сохраняя их в файле с расширением .pyc. Далее байт-код запускается на виртуальной машине Python (PVM). При вторичном запуске скрипта, интерпретатор отслеживает были ли внесены изменения в нём. Если нет, то запускается сразу .pyc файл.
Реализации Python:
- CPython — стандартная реализация Python
- Jython — альтернативная реализация Python. Основная цель которой — бесшовная интеграция с платформой Java. Состоит из java-классов, которые транслируют программный код на языке Python в java байт-код, который затем запускается на виртуальной машине Java (JVM).
- IronPython — реализация Python предназначенная для интеграции с .NET платформой.
- Shedskin C++ — нетрадиционный подход к выполнению программ на языке Python. Цель — оптимизация скорости выполнения. Преобразует исходный код Python в исходный код C++, который затем может быть скомпилирован в машинный код.
- PyPy — реализация PVM на самом языке Python + JIT компилятор.
Варианты запуска программ
На хабре уже была написана хорошая инструкция для новичков, как быстро организовать рабочую среду для разработки на Python и django. Если вы уже проделали описанную в ней последовательность действий, то это означает, что на вашей машине уже установлен интерпретатор python. В большинстве Linux дистрибутивов он установлен по-умолчанию.
Вариант 1. Интерактивный режим
Для попадания в интерактивный режим необходимо ввести в командной строке команду python.
$ python
Python 2.5.2 (r252:60911, Oct 5 2008, 19:24:49)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print 'Hello World!'
Hello World!
В интерактивном режиме инструкции выполняются построчно. Для того, чтобы выполнить блок кода, можно, к примеру, набрать в пустом текстовом файле следующие две команды:
str1 = 'Hello World!'
str2 = " It's my second script"
print 'import has been done successfully'
И сохранить их в файле hi.py. Далее в командной строчке используя команду cd перейти в тот каталог, в котором вы сохранили файл и набрать команду python.
Для импорта инструкций можно использовать инструкцию import <имя файла без расширения .py>. Файлы в языке Python являются модулями, которые внутри себя содержат пространство имён. Импортируя модуль мы получаем доступ к пространству имён верхнего уровня.
$ python
Python 2.5.2 (r252:60911, Oct 5 2008, 19:24:49)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import hi
import has been done successfully
>>> print hi.str1+hi.str2
Hello World! It's my second script
Используя в инструкции конструкцию вида: hi.str1, мы обращаемся к имени str1, определённом внутри модуля hi.
Строки, числа в языке Python — это тоже объекты. Здесь прослеживается наследование парадигмы берущей начало от языка SmallTalk «Всё — объекты». Однако, если мне не изменяет память там речь шла и о том, что операторы — тоже были объектами. В python оператор «+» — это перегруженный оператор для строк выполняющий конкатенацию.
Для импортирования конкретных имён можно использовать инструкцию from:
>>> from hi import str1
>>> print str1
Hello World!
После чего мы сможем обращаться к импортируемому имени непосредственно.
После внесения каких-то изменений в файл, для того чтобы изменения вступили в силу — необходимо перезагрузить модуль с помощью функции reload().
>>> reload(hi)
<module 'hi' from 'hi.pyc'>
Для получения списка всех доступных имён модуля можно использовать функцию dir():
>>> dir(hi)
['__builtins__', '__doc__', '__file__', '__name__', 'str1', 'str2']
Вариант 2. Запуск из командной строки.
Запустить сценарий из командной строки можно следующим образом:
$ python hi.py
Так же сценарию можно передавать параметры командной строки. Доступ к ним из сценария можно получить, импортировав встроенный модуль sys. Изменим файл hi.py следующим образом:
import sys
print sys.argv
После чего вызовем его из команжной строки, передав несколько произвольных параметров:
$ python hi.py 1 2 3 'param-pam-pam'
['hi.py', '1', '2', '3', 'param-pam-pam']
В результате получим список, содержащий в себе переданные параметры. Список — это тоже конструкция языка Python. О списках речь пойдёт в следующих статьях.
Потоки ввода и вывода сценария можно перенаправлять с помощью средств командной оболочки, например так:
$ python hi.py 1 2 3 'param-pam-pam' > text.txt
Вариант 3. IDE.
Интерактивный режим удобен в некоторых случаях, например, когда нужно поэкспериментировать с какой-то определённой инструкцией. Однако, постоянно работать в нём неудобно т.к. Нужно постоянно вспоминать про перезагрузку модулей.
Поэтому гораздо удобнее воспользоваться описанной выше процедурой настройки IDE и запускать программы из неё. Так же при разработке программ на Python вполне приемлем вариант написания кода в блокноте с подсветкой синтаксиса и запуском программы из консоли.
На сегодня всё. В следующих статьях мы перейдём непосредственно к изучению конструкций языка. Не сомневаюсь, отклики будут и я буду на них ориентироваться.
Спасибо за внимание!
Как запускать программы на Python в IDLE
IDLE — интегрированная среда разработки и обучения которая устанавливается вместе с интерпретатором Python. Несмотря на то, что IDLE не очень подходит для написания больших программ, он является отличной средой именно для обучения языку Python. В нем есть подсветка синтаксиса, а этого как правило вполне достаточно для написания своих первых программ.
Писать программы можно как в интерактивном режиме (REPL), так и в отдельных файлах, сохраняя их на диск и запуская при помощи меню Run > Run module или клавишей F5.
Писать код в интерактивном режиме можно, но это подходит только для случаев когда ваш код состоит из нескольких строк. Например, вы хотите написать простой цикл на Python. Для этого введите в строку следующее:
for i in range(10):
После того как вы нажмете Enter, курсор перейдет на новую строку и сместится на 4 пробела вправо. Теперь вы можете писать код который будет выполняться при каждой итерации цикла, например:
print(i)
чтобы выйти из блока и получить результат выполнения цикла, дважды нажмите Enter:
Думаю, теперь вам понятно, почему писать программы в интерактивном режиме не очень удобно. Он больше подходит для обучения и проверки какого то кода, нежели чем для написания полноценных сценариев.
Для более объемного кода вам нужно создать файл в меню IDLE: File > New file. После этого сохраните файл на жесткий диск и можно начинать писать программу.
После того как набрали нужный код — сохраните файл и нажмите клавишу F5 или выберите пункт меню Run > Run module. Ваш файл запустится в окне IDLE.
Это все, что нужно знать про IDLE для того чтобы начать писать программы на Python. Конечно, он предоставляет больше возможностей, таких как поиск или отладка, но я не вижу смысла описывать все это здесь. Программировать на Python вы скорее всего будете в более продвинутых редакторах кода или IDE. О лучших из них вы можете почитать в нашей статье «Лучшие бесплатные IDE и редакторы кода для Python».
Web-разработка • Python и Flask
Программа на Python может запускать другие программы с помощью функции Popen()
(от process open) встроенного модуля subprocess. В качестве аргумента функция принимает имя программы, которую нужно запустить:
>>> import subprocess >>> subprocess.Popen('C:\\Windows\\System32\\calc.exe') <subprocess.Popen object at 0x0000020B18386438>
Возвращаемое значение представляет собой объект Popen
, имеющий два полезных метода: poll()
и wait()
.
Метод poll()
возвращает значение None
, если в момент его вызова процесс все еще выполняется. Если же процесс к этому моменту завершен, то он возвращает код завершения процесса. Код заверешения служит индикатором того, завершился ли процесс без ошибок (код равен нулю) или же его завершение было вызвано ошибкой (ненулевой код).
Метод wait()
ожидает завершения запущенного процесса, прежде чем продолжить выполнение основной программы. Возвращаемым значением метода является целочисленный код завершения процесса.
>>> notepad = subprocess.Popen('C:\\Windows\\System32\\notepad.exe') >>> notepad.poll() == None True >>> notepad.poll() == None False >>> notepad.wait() 0 >>> notepad.poll() 0
Сначала мы открываем процесс блокнота, затем проверяем, возвращает ли метод poll()
значение None
. Это означает, что процесс все еще выполняется. После этого закрываем блокнот и еще раз проверяем, возвращает ли метод poll()
значение None
. Теперь оба метода, wait()
и poll()
возвращают нулевое значение, что указывает на завершение программы notepad.exe
без ошибок.
Передача аргументов командной строки
Процессам, создаваемым с помощью функции Popen()
, можно передвать аргументы командной строки. Для этого функции Popen()
надо передать список в качестве единственного аргумента. Первой строкой в этом списке должно быть имя исполняемого файла программы, которую надо запустить. Все последующие строки — это аргументы командной строки, которые будут переданы программе при запуске.
>>> subprocess.Popen(['C:\\Windows\\System32\\notepad.exe', 'C:\\example\\readme.txt']) <subprocess.Popen object at 0x0000020B18386630>
Здесь мы не только запускаем приложение notepad.exe
, но и открываем файл readme.txt
.
Открытие файлов программ по умолчанию
Двойной клик на иконке файла с расширением .txt
позволяет автоматически запустить приложение, ассоциированное с этим расширением. Функция Popen()
также может открывать файлы подобным образом:
>>> subprocess.Popen(('start', 'C:\\example\\readme.txt'), shell = True) <subprocess.Popen object at 0x0000020B183EDE10>
В каждой операционной системе есть программа, выполняющая те же функции, что и двойной клик на иконке файла. В Windows это программа start
, в Ubuntu Linux — программа see
.
Именованный аргумент shell = True
нужен только для ОС Windows.
# Таймер обратного отсчета import time, subprocess wait = 10 while wait > 0: print(wait, end='') time.sleep(1) wait = wait - 1 # Воспроизведение звукового файла по завершении обратного отсчета subprocess.Popen(['start', 'C:\\example\alarm.wav'], shell = True)
Поиск:
Python • Web-разработка • Модуль • Процесс
Как запустить скрипт Python?
В этом руководстве рассказывается о том, как запустить скрипт Python.
Обработку данных на основе Python можно разбить на маленькие этапы. Например:
- Импорт numpy и pandas.
- Загрузка необработанных данных из .csv файла в DataFrame.
- Загрузка необработанных данных из словаря Python в другой DataFrame.
- Объединение двух фреймов данных.
- Сортировка значений.
- Заполнение пустых значений.
- И так далее…
Можно выполнить эти задачи вручную. Или поместить эти команды в скрипт Python. Это и есть скриптинг.
Скрипт Python похож на сценарий фильма. В нем вы точно записываете, должен делать компьютер.
Вы можете использовать любой код, написанный ранее в Jupyter. Например, вот мой Jupyter Notebook.
Для этого нужно скопировать все строки из Jupyter Notebook и поместить их в текстовый редактор. После чего сохранить в файл с расширением .py.
Если вы находитесь на удаленном сервере, откройте свой любимый текстовый редактор. Для этого введите команду:
Вы можете использовать любой текстовый редактор (vim, nano и т. д.).
Но если вы хотите что-то более продвинутое, я настоятельно рекомендую Sublime Text 3.
Скопируйте и вставьте весь код из Jupyter Notebook в текстовый редактор:
Нажмите кнопку 10-Quit в правом нижнем углу (или Esc+0 на клавиатуре).
После чего mcedit спросит, хотите ли вы сохранить файл? Нажмите: Yes! Затем задайте имя новому текстовому файлу. Скрипты Python имеют собственное расширение: .py.
Нажмите ОК
. Теперь текстовый файл теперь стал скриптом Python.
Вернемся к редактированию файла, набрав команду:
Теперь код выглядит более похожим на Python с различной подсветкой:
Это потому, что вы добавили расширение .py
. В результате этого редактор mcedit распознал текстовый файл как скрипт Python.
Shebang — это строка кода, которую нужно поместить в самом начале скрипта. Его задача – сообщить ОС, что у вас есть исполняемый файл Python3.
Строка shebang для скриптов Python3 выглядит следующим образом:
#! / usr / bin / env python3
Добавленный Shebang
Если честно, ваш скрипт будет работать и без него. Несмотря на это, я предпочитаю добавлять Shebang по нескольким причинам:
- В среде разработки, в которой доступно сразу несколько версий Python, Shebang прояснит, какой интерпретатор должен выполнить скрипт.
- Когда один из ваших коллег откроет скрипт, он сразу увидит, на каком языке он написан.
После добавления Shebang, снова сохраните файл и попробуйте запустить скрипт, введя команду:
В некоторых случаях (в зависимости от конфигурации используемого сервера) вы получите ошибку прав доступа:
demoscript.py: Permission denied
В Python подобная ошибка прав доступа не возникает. Если вы не столкнулись с этой проблемой, просто перейдите к шагу № 7.
Если у вас возникла ошибка прав доступа, в командной строке введите этот код:
sudo chmod 777 demoscript.py
Затем введите свой пароль.
Запустите скрипт, введя команду:
Это означает, что ваш скрипт на Python запущен… Но вы не видите никакого результата на экране.
В большинстве случаев, когда вы конвертируете проект Jupyter Notebook в скрипт Python, вы не увидите на экране ничего. Это потому, что последняя строка вашего кода была такой:
Вернитесь к своему скрипту и измените последнюю строку на эту:
Нажмите 10-Quit и Save.
Перезапустите скрипт, введя для этого команду:
Победа!
Вы создали скрипт на Python, и он работает. Но вы все равно захотите использовать Jupyter Notebook. Так как он является идеальным инструментом для тестирования и настройки процессов. Поэтому:
- Я создаю прототип проекта на Python в Jupyter Notebook. Затем создаю код и выясняю, какие шаги необходимы.
- Затем удаляю ненужные фрагменты кода и импортированные пакеты, сортирую задачи Python в порядке их выполнения.
- Добавляю комментарии к коду.
- Перемещаю все в текстовый редактор (Sublime Text или mcedit) и создаю скрипт Python, который можно автоматизировать.
Написание и запуск скриптов Python это не магия. Если вы знаете, как писать код на Python, то сможете освоить и скрипты
Данная публикация представляет собой перевод статьи «How to Run a Python Script (Step by Step Tutorial, with Example)» , подготовленной дружной командой проекта Интернет-технологии.ру
телеграм канал. Подпишись, будет полезно!
Запуск внешней программы (исполняемого файла) в Python?
Я только начал работать с Python, и я пытаюсь запустить внешний исполняемый файл из Python.
у меня есть исполняемый файл для программы, написанной на Фортране. Допустим, имя исполняемого файла-flow.исполняемый. И мой исполняемый файл находится в C:\Documents and Settings\flow_model
. Я попробовал обе ОС.команды system и popen, но пока я не мог заставить его работать. Следующий код, похоже, открывает командное окно, но он не будет выполнять модель.
# Import system modules
import sys, string, os, arcgisscripting
os.system("C:/Documents and Settings/flow_model/flow.exe")
Как я могу исправить это?
66
автор: Peter Mortensen
12 ответов
эти пробелы могут очень беспокоить:-(. Попробуй!—0—> затем относительные пути для os.system
, subprocess
методы или что-то еще…
если лучшие попытки обойти препятствие пробелов в пути продолжают терпеть неудачу, то мое следующее лучшее предложение —избежать наличие пробелов в ваших важнейших путях. Не могли бы вы сделать каталог без пробелов, скопируйте crucial .exe
файл там, и попробуйте это? Являются ли эти хаос-вредительство пространство абсолютно необходимым за твое благополучие…?
33
автор: Alex Martelli
при использовании Python 2.7 или выше (особенно до Python 3.5) вы можете использовать следующее:
import subprocess
-
subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)
Запускает команду, описанную args. Ожидает завершения команды, затем возвращает атрибут returncode. -
subprocess.check_call(args, *, stdin=None, stdout=None, stderr=None, shell=False)
Запускает команду с аргументами. Ждет завершения команды. Если код возврата равен нулю, то возвращается, иначе возникает CalledProcessError. Объект CalledProcessError будет иметь код возврата в коде возврата атрибут
пример: subprocess.check_call([r"C:\pathToYourProgram\yourProgram.exe", "your", "arguments", "comma", "separated"])
в обычных строках Python комбинация символов \ U сигнализирует a
расширенная кодовая точка Unicode escape.
вот ссылка на документацию:http://docs.python.org/3.2/library/subprocess.html
для Python 3.5+ теперь вы можете использовать run() во многих случаях:https://docs.python.org/3.5/library/subprocess.html#subprocess.run
ваше использование является правильным. Держу пари, что ваша внешняя программа, flow.exe, должен быть выполнен в его каталоге, потому что он обращается к некоторым внешним файлам, хранящимся там.
Так что вы можете попробовать:
import sys, string, os, arcgisscripting
os.chdir('c:\documents and settings\flow_model')
os.system('"C:\Documents and Settings\flow_model\flow.exe"')
(остерегайтесь двойных кавычек внутри одинарных кавычек…)
18
автор: Adrien Plisson
на вашем месте я бы попытался вставить » r » перед вашим путем, чтобы указать, что это необработанная строка, и тогда вам не придется использовать косые черты. Например:
os.system(r"C:\Documents and Settings\flow_model\flow.exe")
самый простой способ-это:
import os
os.startfile("C:\Documents and Settings\flow_model\flow.exe")
это работает, я пробовал.
использовать подпроцесс, это меньший модуль, поэтому он запускает .exe
быстрее.
import subprocess
subprocess.Popen([r"U:\Year 8\kerbal space program\KSP.exe"])
8
автор: Frodo Baggins
С помощью os.система:
import os
os.system(r'"C:/Documents and Settings/flow_model/flow.exe"')
попробовать
import subprocess
subprocess.call(["C:/Documents and Settings/flow_model/flow.exe"])
это попытка выполнить C:\Documents
с доводами "and", "Settings/flow_model/flow.exe"
?
кроме того, вы можете рассмотреть subprocess.call()
.
Если бы это был я, Я бы поместил EXE-файл в корневой каталог (C:) и посмотрел, работает ли он так. Если да, то это, вероятно, (уже упомянутые) пробелы в имени каталога. Если нет,это могут быть некоторые переменные среды.
кроме того, попробуйте проверить stderr (используя более ранний ответ int3):
import subprocess
process = subprocess.Popen(["C:/Documents and Settings/flow_model/flow.exe"], \
stderr = subprocess.PIPE)
if process.stderr:
print process.stderr.readlines()
код может быть не совсем правильным, поскольку я обычно не использую Popen или Windows, но должен дать идею. Вполне возможно, что сообщение об ошибке на ошибке поток.
Это правильное использование, но, возможно, пробелы в имени пути по какой-то причине все портят.
вы можете запустить программу под cmd.exe, так что вы можете увидеть любой выход из потока.exe, который может указывать на ошибку.
для вышеуказанного вопроса это решение работает.
просто измените путь, где находится исполняемый файл.
import sys, string, os
os.chdir('C:\Downloads\xpdf-tools-win-4.00\xpdf-tools-win-4.00\bin64')
os.system(r"C:\Downloads\xpdf-tools-win-4.00\xpdf-tools-win-4.00\bin64\flowwork.exe)
'''import sys, string, os
os.chdir('C:\Downloads\xpdf-tools-win-4.00\xpdf-tools-win-4.00\bin64')
os.system(r"C:\Downloads\xpdf-tools-win-4.00\xpdf-tools-win-4.00\bin64\pdftopng.exe test1.pdf rootimage")'''
здесь test1.PDF rootimage для моего кода .
Python и запуск програм
Поднятие объектно-ориентированного программирования на новый уровень
Большинство читателей уже знакомо с концепциями объектно-ориентированного программирования: наследованием, инкапсуляцией, полиморфизмом. Но создание объектов заданного класса с определенными родителями обычно представляется исходно заданной операцией. Оказывается, что ряд новых программных конструкций становится либо более простым, либо вообще хоть сколько-нибудь возможным, если вы можете настраивать процесс создания объектов. Метаклассы разрешают определенные типы «аспектно-ориентированного программирования»; например, можно усилить классы такими характеристиками, как возможности трассировки, объектная персистентность, регистрация исключений и так далее.
Краткий обзор объектно-ориентированного программирования (ООП)
Давайте, потратив полминуты, вспомним, что такое ООП. В языке объектно-ориентированного программирования можно определять классы, задача которых — объединить связанные данные и поведение. Эти классы могут наследовать некоторые или все свойства своих родителей, они также определяют свои собственные атрибуты (данные) или методы (поведение). В результате, классы, как правило, выступают в качестве шаблонов для создания экземпляров (которые время от времени называют просто объектами). Различные экземпляры одного и того же класса обычно имеют разные данные, хотя они будут представлены в одинаковом виде, например, у обоих объектов класса ‘Employee’ bob и jane есть .salary и .room_number, но значения room (комната) и salary (жалование) у каждого различны.
Яндекс.ДиректВсе объявленияЯ хочу лучше фотографировать! Запишись на бесплатный онлайн-семинар по фотографии и секретам мастерства! webinar.disted.ru
Некоторые объектно-ориентированные языки программирования, включая Python, предусматривают интроспективные (или рефлексивные) объекты. Другими словами, интроспективный объект может сам себя описывать: к какому классу принадлежит этот экземпляр? Кто предки этого класса? Какие методы и атрибуты доступны объекту? Интроспекция позволяет функции или методу, управляющему объектами, принимать решения, основываясь на том, какой вид объекта передается. Даже без интроспекции функции часто ветвятся, опираясь на данные экземпляра — например, маршрут к jane.room_number отличается от пути к bob.room_number, поскольку они в «различных комнатах» (значения room у них различны). С помощью интроспекции также можно безошибочно вычислить bonus (премиальные) jane, пропустив это вычисление для bob, например, потому что у jane есть атрибут .profit_share или из-за того, что bob является экземпляром производного класса Hourly(Employee).
«Метапрограммный» ответ
Базовая система ООП, очерченная выше, является достаточно мощной. Однако, в этом описании один момент не получил должного внимания: в Python (и других языках) сами классы являются объектами, которые можно передавать и подвергать интроспекции. Но поскольку объекты, как отмечалось, создаются с использованием классов в качестве шаблонов, то что же является шаблоном для создания классов? Разумеется, метаклассы.
В Python всегда были метаклассы. Однако, технология, задействованная в метаклассах, стала гораздо более очевидной с выходом Python 2.2. А именно, в версии 2.2 Python перестал быть языком только с одним специальным (обычно невидимым) метаклассом, который создавал каждый объект класса. Теперь программисты могут наследоваться от встроенного метакласса type и даже динамически генерировать классы с различными метаклассами. Разумеется, только то, что вы можете манипулировать метаклассами на Python 2.2, еще не объясняет, зачем вам это.
Более того, вам не нужно использовать метаклассы, определенные пользователем, чтобы управлять созданием классов. Несколько менее головоломная концепция — фабрика классов (class factory): обыкновенная функция может возвращать класс, который был динамически создан в пределах тела функции. В традиционном синтаксисе Python вы можете написать: Далее…
Часто задаваемые вопросы о
Python в Windows — документация по Python 3.8.6
Это не обязательно простой вопрос. Если вы уже знакомы
с запущенными программами из командной строки Windows тогда все будет казаться
очевидно; в противном случае вам может понадобиться немного дополнительных указаний.
Если вы не используете какую-либо интегрированную среду разработки, вы в конечном итоге
ввод команд Windows в то, что также называется «окном DOS»
или «Окно командной строки».Обычно такое окно можно создать из своего
панель поиска, выполнив поиск по запросу cmd
. Вы должны уметь распознавать
когда вы запустили такое окно, потому что вы увидите команду Windows «
подсказка », который обычно выглядит так:
Буква может быть другой, и после нее могут быть другие символы, поэтому вы
может так же легко увидеть что-то вроде:
D: \ Ваше Имя \ Проекты \ Python>
в зависимости от того, как был настроен ваш компьютер и что еще у вас было недавно
покончено с этим.Как только вы открыли такое окно, вы уже на пути к
запуск программ Python.
Вы должны понимать, что ваши скрипты Python должны обрабатываться другим
Программа называется интерпретатором Python . Интерпретатор читает ваш сценарий,
компилирует его в байт-коды, а затем выполняет байт-коды для запуска вашего
программа. Итак, как организовать интерпретатор для обработки вашего Python?
Во-первых, вам нужно убедиться, что ваше командное окно распознает слово
«Py» в качестве инструкции для запуска интерпретатора.Если вы открыли
командное окно, вы должны попробовать ввести команду py
и нажать
возврат:
Вы должны увидеть что-то вроде:
Python 3.6.4 (v3.6.4: d48eceb, 19 декабря 2017 г., 06:04:45) [MSC v.1900 32 бит (Intel)] на win32 Для получения дополнительной информации введите «помощь», «авторские права», «кредиты» или «лицензия». >>>
Вы запустили интерпретатор в «интерактивном режиме». Это означает, что вы можете войти
Операторы или выражения Python в интерактивном режиме и их выполнение или
оценивается, пока вы ждете.Это одна из самых сильных сторон Python. Проверь это
введя несколько выражений по вашему выбору и увидев результат:
>>> print ("Привет") Здравствуйте >>> "Привет" * 3 'Привет привет привет'
Многие люди используют интерактивный режим как удобный, но хорошо программируемый
калькулятор. Если вы хотите завершить интерактивный сеанс Python,
вызвать функцию exit ()
или удерживать нажатой клавишу Ctrl
введите Z , а затем нажмите клавишу «, введите », чтобы получить
обратно в командную строку Windows.
Вы также можете обнаружить, что у вас есть запись в меню «Пуск», в результате чего вы
увидеть приглашение >>>
в новом окне. Если так, окно исчезнет
после вызова функции exit ()
или ввода Ctrl-Z
характер; В Windows работает единственный «питон»
в окне и закрывает ее, когда вы завершаете работу интерпретатора.
Теперь, когда мы знаем, что команда py
распознана, вы можете дать свой
Скрипт Python к нему.Вы должны будете дать либо абсолют, либо
относительный путь к скрипту Python. Допустим, ваш скрипт Python
находится на вашем рабочем столе и называется hello.py
, а ваша команда
приглашение открыто в вашем домашнем каталоге, поэтому вы что-то видите
похоже на:
Итак, теперь вы попросите команду py
передать ваш скрипт Python
введите py
, а затем укажите путь к сценарию:
C: \ Users \ YourName> Рабочий стол py \ hello.py Здравствуйте
.Часто задаваемые вопросы о
Python в Windows — документация Python 2.7.18
Это не обязательно простой вопрос. Если вы уже знакомы
с запущенными программами из командной строки Windows тогда все будет казаться
очевидно; в противном случае вам может понадобиться немного дополнительных указаний.
Если вы не используете какую-либо интегрированную среду разработки, вы в конечном итоге
ввод команд Windows в то, что также называется «окном DOS»
или «Окно командной строки».Обычно такое окно можно создать из своего
Стартовое меню; под Windows 7 выбор меню. Вы должны уметь распознавать
когда вы запустили такое окно, потому что вы увидите команду Windows «
подсказка », который обычно выглядит так:
Буква может быть другой, и после нее могут быть другие символы, поэтому вы
может так же легко увидеть что-то вроде:
D: \ YourName \ Projects \ Python>
в зависимости от того, как был настроен ваш компьютер и что еще у вас было недавно
покончено с этим.Как только вы открыли такое окно, вы уже на пути к
запуск программ Python.
Вы должны понимать, что ваши скрипты Python должны обрабатываться другим
Программа называется интерпретатором Python . Интерпретатор читает ваш сценарий,
компилирует его в байт-коды, а затем выполняет байт-коды для запуска вашего
программа. Итак, как организовать интерпретатор для обработки вашего Python?
Во-первых, вам нужно убедиться, что ваше командное окно распознает слово
«Python» как инструкция для запуска интерпретатора.Если вы открыли
командное окно, вы должны попробовать ввести команду python
и нажать
доход .:
C: \ Пользователи \ Ваше имя> Python
Вы должны увидеть что-то вроде:
Python 2.7.3 (по умолчанию, 10 апреля 2012 г., 22.71: 26) [MSC v.1500 32 бит (Intel)] на win32 Для получения дополнительной информации введите «помощь», «авторские права», «кредиты» или «лицензия». >>>
Вы запустили интерпретатор в «интерактивном режиме». Это означает, что вы можете войти
Операторы или выражения Python в интерактивном режиме и их выполнение или
оценивается, пока вы ждете.Это одна из самых сильных сторон Python. Проверь это
введя несколько выражений по вашему выбору и увидев результат:
>>> выведите "Здравствуйте" Здравствуйте >>> "Привет" * 3 'Привет привет привет'
Многие люди используют интерактивный режим как удобный, но хорошо программируемый
калькулятор. Когда вы хотите завершить интерактивный сеанс Python, удерживайте Ctrl
нажмите клавишу, пока вы вводите Z , затем нажмите клавишу « Enter », чтобы вернуться к своему
Командная строка Windows.
Вы также можете обнаружить, что у вас есть запись в меню «Пуск», в результате чего вы
увидеть приглашение >>>
в новом окне. Если так, окно исчезнет
после ввода символа Ctrl-Z ; В Windows работает единственный «питон»
в окне и закрывает ее, когда вы завершаете работу интерпретатора.
Если команда python
, вместо отображения приглашения интерпретатора >>>
,
дает вам сообщение вроде:
«python» не распознается как внутренняя или внешняя команда, работающая программа или командный файл.
или:
.