Как скомпилировать программу пайтон

Позволяет скомпилировать блок кода для выполнения в exec().

Синтаксис:

compile(source, filename, mode, flag, dont_inherit, optimize)

Параметры:

  • source — обязательный параметр. Может быть обычной строкой, байтовой строкой, либо объектом абстрактного синтаксического дерева.
  • filename — обязательный параметр. Имя файла, из которого будет читается код. Если код не будет считан из файла, вы можете написать в качестве параметра любую строку .
  • mode — обязательный параметр. Может принимать 3 значения:
  • eval , если источником является одно выражение;
  • exec ,если источником является блок операторов;
  • single , если код состоит из одного оператора;
  • -1 — использовать настройки интерпретатора (регулируются опцией -O);
  • 0 — не оптимизировать, включить debug;
  • 1 — убрать инструкции asserts, выключить debug;
  • 2 — то, что делает 1 + убрать строки документации.

Возвращаемое значение:

  • объекта кода, готовый к выполнению.

Описание:

Функция compile() возвращает переданный, в качестве аргумента источник, в виде объекта кода, готового к выполнению. Объекты кода, полученные в результате выполнения функции compile() могут быть выполнены с помощью exec() или eval() .

Как скомпилировать программы на Python

Функция compile() бросает исключение SyntaxError , если скомпилированный источник недопустим и ValueErrorесли , если источник содержит нулевые байты.

Заметка:
При компиляции строки с многострочным кодом в режиме single или eval , ввод должен заканчиваться хотя бы одним символом новой строки ‘n’ . Это должно облегчить обнаружение неполных и полных операторов в модуле code .

Предупреждение:
При компиляции в объект AST(абстрактного синтаксического дерева) возможен сбой интерпретатора Python с большой(сложной) строкой из-за ограничений глубины стека в компиляторе AST Python.

Изменено в Python 3.5: Ранее TypeError вызывалось, когда в источнике встречались нулевые байты.

Новое в Python 3.8: ast.PyCF_ALLOW_TOP_LEVEL_AWAIT теперь можно передать через необязательный параметр flag , чтобы обеспечить поддержку await и async .

Пример компиляции строки кода с последующем выполнением.

# выполнение в exec >>> x = compile(‘x = 1nz = x + 5nprint(z)’, ‘test’, ‘exec’) >>> exec(x) # 6 # выполнение в eval >>> y = compile(«print(‘4 + 5 =’, 4+5)», ‘test’, ‘eval’) >>> eval(y) # 4 + 5 = 9

  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Функция abs(), абсолютное значение числа.
  • Функция all(), все элементы True.
  • Функция any(), хотя бы один элемент True.
  • Функция ascii(), преобразует строку в ASCII.
  • Функция bin(), число в двоичную строку.
  • Класс bool(), логическое значение объекта.
  • Функция breakpoint(), отладчик кода.
  • Класс bytearray(), преобразует в массив байтов.
  • Класс bytes(), преобразует в строку байтов.
  • Функция callable(), проверяет можно ли вызвать объект.
  • Функция chr(), число в символ Юникода.
  • Класс classmethod, делает функцию методом класса.
  • Функция compile() компилирует блок кода Python.
  • Класс complex(), преобразует в комплексное число.
  • Функция delattr(), удаляет атрибут объекта.
  • Класс dict() создает словарь.
  • Функция dir(), все атрибуты объекта.
  • Функция divmod(), делит числа с остатком.
  • Функция enumerate(), счетчик элементов последовательности.
  • Функция eval(), выполняет строку-выражение с кодом.
  • Функция exec(), выполняет блок кода.
  • Функция filter(), фильтрует список по условию.
  • Класс float(), преобразует в вещественное число.
  • Функция format(), форматирует значение переменной.
  • Класс frozenset(), преобразует в неизменяемое множество.
  • Функция getattr(), значение атрибута по имени.
  • Функция globals(), переменные глобальной области.
  • Функция hasattr(), наличие атрибута объекта.
  • Функция hash(), хэш-значение объекта.
  • Функция help(), справка по любому объекту.
  • Функция hex(), число в шестнадцатеричную строку.
  • Функция id(), идентификатор объекта.
  • Функция input(), ввод данных с клавиатуры.
  • Класс int(), преобразует в тип int.
  • Функция isinstance(), принадлежность экземпляра к классу.
  • Функция issubclass(), проверяет наследование класса.
  • Функция iter(), создает итератор.
  • Функция len(), количество элементов объекта.
  • Класс list(), преобразовывает в список.
  • Функция locals(), переменные локальной области.
  • Функция map(), обработка последовательности без цикла.
  • Функция max(), максимальное значение элемента.
  • Класс memoryview(), ссылка на буфер обмена.
  • Функция min(), минимальное значение элемента.
  • Функция next(), следующий элемент итератора.
  • Класс object(), возвращает безликий объект.
  • Функция oct(), число в восьмеричную строку.
  • Функция open(), открывает файл на чтение/запись.
  • Функция ord(), число символа Unicode.
  • Функция pow(), возводит число в степень.
  • Функция print(), печатает объект.
  • Класс property(), метод класса как свойство.
  • Класс range(), генерирует арифметические последовательности.
  • Функция repr(), описание объекта.
  • Функция reversed(), разворачивает последовательность.
  • Функция round(), округляет число.
  • Класс set(), создает или преобразовывает в множество.
  • Функция setattr(), создает атрибут объекта.
  • Класс slice(), шаблон среза.
  • Функция sorted(), выполняет сортировку.
  • Декоратор staticmethod(), метод класса в статический метод.
  • Класс str(), преобразует объект в строку.
  • Функция sum(), сумма последовательности.
  • Функция super(), доступ к унаследованным методам.
  • Класс tuple(), создает или преобразует в кортеж.
  • Класс type(), возвращает тип объекта.
  • Функция vars(), словарь переменных объекта.
  • Функция zip(), объединить элементы в список кортежей.
  • Функция __import__(), находит и импортирует модуль.
  • Функция aiter(), создает асинхронный итератор.
  • Функция anext(), следующий элемент асинхронного итератора.
Читайте также:
Как написать шахматную программу

Источник: docs-python.ru

Как скомпилировать python в exe | Полноценная компиляция с помощью NUITKA

не могу скомпилировать python 3.4 в exe

Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно.
Необходимо обновить браузер или попробовать использовать другой.

Валентин

Пользователь
Ноя 13, 2020 113 0 16

Операционная система windows 10. Написал программу на python 3.4 Когда дело дошло до компиляции всё пошло в тупик. Pyinstaller не устанавливается на эту версию python, а cx_Freeze создаёт огромную библиотеку. Использовать другую версию python не могу. Теперь незнаю как скомпилировать всё что сделал(

stud_55

Модератор

Команда форума
Модератор
Апр 3, 2020 1 522 671 113
Pyinstaller не устанавливается на эту версию python
Попробуйте установить версию 3.0 pyinstaller`a: ссылка.

regnor

Модератор

Команда форума
Модератор
Июл 7, 2020 2 421 430 83

питон не компилируемый язык (за исключением Cython, который можно скомпилировать), а почему нельзя использовать другую версию питон? почему Pyinstaller не устанавливается что пишет? и зачем вообще компилировать интерпретируемый язык?

Валентин

Пользователь
Ноя 13, 2020 113 0 16

питон не компилируемый язык (за исключением Cython, который можно скомпилировать), а почему нельзя использовать другую версию питон? почему Pyinstaller не устанавливается что пишет? и зачем вообще компилировать интерпретируемый язык?

Вот что выдаёт при установке Pyinstaller:

Command python setup.py egg_info failed with error code 1 in C:UsersCOMPSAppDataLocalTemppip_build_COMPSpyinstaller
Storing debug log for failure in C:UsersCOMPSpippip.log

Валентин

Пользователь
Ноя 13, 2020 113 0 16
Попробуйте установить версию 3.0 pyinstaller`a: ссылка.

Exception:
Traceback (most recent call last):
File «C:Python34libsite-packagespipbasecommand.py», line 122, in main
status = self.run(options, args)
File «C:Python34libsite-packagespipcommandsinstall.py», line 257, in run
InstallRequirement.from_line(name, None))
File «C:Python34libsite-packagespipreq.py», line 172, in from_line
return cls(req, comes_from, url=url, prereleases=prereleases)
File «C:Python34libsite-packagespipreq.py», line 70, in __init__
req = pkg_resources.Requirement.parse(req)
File «C:Python34libsite-packagespip_vendorpkg_resources.py», line 2606, in parse
reqs = list(parse_requirements(s))
File «C:Python34libsite-packagespip_vendorpkg_resources.py», line 2532, in parse_requirements
raise ValueError(«Missing distribution spec», line)
ValueError: (‘Missing distribution spec’, ‘==’)

Читайте также:
Программа для голоса чтобы петь

Storing debug log for failure in C:UsersCOMPSpippip.log

regnor

Модератор

Команда форума
Модератор
Июл 7, 2020 2 421 430 83

Вот что выдаёт при установке Pyinstaller:

Command python setup.py egg_info failed with error code 1 in C:UsersCOMPSAppDataLocalTemppip_build_COMPSpyinstaller
Storing debug log for failure in C:UsersCOMPSpippip.log

Источник: itfy.org

Функция compile() в Python

Функция compile() в Python используется для компиляции исходного кода в объект кода или объект модуля AST. Возвращенный объект кода может быть выполнен с использованием функции exec() или eval() в зависимости от предоставленного режима для создания объекта кода.

Компиляция

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

Давайте посмотрим на аргументы функции compile():

  • source: Источник для создания объекта кода. Это может быть строка, байтовая строка или объект модуля AST.
  • filename: Если вы читаете строку кода из файла, вы должны указать здесь его имя для справки. Он не используется при создании объекта кода, скорее он используется для обеспечения читабельности кода.
  • mode: этот аргумент указывает тип кода. Допустимые значения: exec, eval и single. Используйте exec, если источник содержит несколько операторов Python. Используйте eval, если источник – это одно выражение. Используйте один, если источник состоит из одного интерактивного оператора.
  • Необязательные аргументы flags и dont_inherit управляют тем, какие будущие операторы влияют на компиляцию исходного кода. Если ни один из них не присутствует (или оба равны нулю), код компилируется с теми будущими операторами, которые действуют в коде, вызывающем compile().
  • Аргумент optimize указывает уровень оптимизации компилятора.

Примеры

Давайте посмотрим на пример функции compile() с разными исходниками.

Компиляция источника строки в код

# compile() with string source code_str = ‘x=5ny=10nprint(«sum EnlighterJSRAW» data-enlighter-language=»python»> sum = 15

Обратите внимание, что тип возвращаемого значения функции компиляции – это объект «код». Кроме того, здесь мы используем exec(), потому что исходная строка содержит несколько операторов python. Обратите внимание, что объект кода выполняется функцией exec(), и в консоли печатается «sum = 15».

Читайте также:
Лучшая программа для оцифровки видеокассет в домашних условиях

Чтение кода из файла и компиляция

Допустим, у нас есть файл my_code.py со следующим содержимым.

x = 10 y = 20 print(‘Multiplication = ‘, x * y)

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