Подтвердить что ты не робот

Компилировать файл python.py без выполнения

Есть ли способ скомпилировать файл Python.py из командной строки без, выполнив его?

Я работаю с приложением, которое хранит свои расширения python в нестандартном пути с ограниченными разрешениями, и я хотел бы скомпилировать файлы во время установки. Мне не нужны накладные расходы Distutils.

4b9b3361

Ответ 1

Модуль py_compile предоставляет функцию для генерации файла байтового кода из исходного файла и другую функцию, используемую, когда источник модуля файл вызывается как script.

python -m py_compile fileA.py fileB.py fileC.py

Ответ 3

Фактически, если вы работаете в Linux, у вас может быть команда /usr/bin/py_compilefiles в вашем PATH. Он обертывает модуль py_compile, упомянутый другими людьми. Если вы не в Linux, здесь script code.

Ответ 4

$ python -c "import py_compile; py_compile.compile('yourfile.py')"

или

$ python -c "import py_compile; py_compile.compileall('dir')"

Ответ 5

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

import py_compile
py_compile(filename+".py",wantedlocation+wantedname+".pyc")

Как я уже сделал в своем проекте Python на github.com/lolexorg/Lolex-Tools

Ответ 6

В дополнение к выбору местоположения вывода pyc (by @Jensen Taylor answer), вы также можете указать имя исходного файла, которое вам нравится для трассировки, если вы не хотите, чтобы абсолютный путь файла py был записан в pyc:

python -c "import py_compile; py_compile.compile('src.py', 'dest.pyc', 'whatever_you_like')"

Хотя "compileall -d destdir" может сделать трюк, он иногда ограничивает ваш рабочий каталог. Например, если вы хотите, чтобы имя исходного файла в pyc было "./src.py", вам нужно переместить рабочий каталог в папку src.py, которая в некоторых случаях нежелательна, затем запустите что-то вроде "python -m compileall -d./."