Як скласти файл python?


57

Я почав вивчати python, а також я новий користувач Ubuntu. Мені потрібно знати способи складання .pyфайлів. Я спробував з командою

python "hello.py"

Які ще способи складання пітона?

Відповіді:


58

Якщо додати відповідь Брайана, якщо ви просто хочете скласти файл або купу файлів з терміналу, py_compileмодуль може бути виконаний як сценарій наступним чином:

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


9
Якщо ви компілюєте через те, що вам потрібна швидкість, ви також можете додати -Oпрапор, як-от python -O -m py_compile …, який "увімкне основні оптимізації". Він здебільшого викреслює assertвисловлювання та if __debug__код, тому для більшості кодів це не впливає. Дивіться man pythonі «Що робить оптимізацію Python ... робити?» Для деталей.
— Rory O'Kane

26

Також пам’ятайте, що для його запуску вам не потрібно збирати .pyфайл. Python - це інтерпретована мова, і ви можете запускати сценарії безпосередньо, використовуючи:

python hello.py

Або зробіть свій сценарій виконуваним, додавши #!/usr/bin/env pythonу верхній частині сценарію, зробивши файл виконуваним chmod +x hello.pyта запустивши:

./hello.py

Той факт, що Python внутрішньо компілює ваш .pyсценарій для байт-коду .pycфайлів з міркувань продуктивності, є детальною інформацією про реалізацію, і, якщо у вас немає вагомих причин для цього, нехай python сам вирішує, коли і якщо компілювати.


Я розгублений, чому це працює. Чи не потрібно інтерпретатору Python вміти читати скрипт, щоб запустити його? Якщо ви даєте лише дозвіл на виконання ( chmod +x), як інтерпретатор читає сценарій?
— yellow01

@ yellow01: коли ви виконуєте скрипт, який містить "shebang", тобто починається перший рядок #!/path/to/interpreter, ядро ​​фактично виконує все, що там оголошено, передаючи шлях сценарію як аргумент. У моєму прикладі, коли ви запускаєте ./hello.pyте, що насправді виконується /usr/bin/env python ./hello.py. Дивіться en.wikipedia.org/wiki/Shebang_(Unix)
— MestreLion,

@ yellow01 ви маєте рацію, що перекладачеві знадобляться дозволи для читання після запуску через процес, який описує MestreLion. Однак chmod +xгранти виконують і не торкаються існуючих дозволів, так що, імовірно, вони читаються на додаток до тепер виконуваного.
— спектри

11

Ознайомтесь із цим посиланням Компілювати в Python

У середині сторінки йдеться про модуль py_compile, який можна імпортувати. Синтаксис такий:

import py_compile

py_compile.compile("file.py")

Цей спосіб компіляції не виконає модуль, як запуск python file.py.

Існує також метод, який компілює ціле дерево каталогів, але я дам вам можливість перевірити посилання, щоб побачити, як це виконується.

Сподіваюся, це допомагає.



4

Ви можете компілювати сценарії Python у двійковий код за допомогою різних методів, але я з’ясував, що використання Nuitka є більш ефективним.

Nuitka - компілятор Python-to-C ++, який підтримує майже всі версії python.

Синтаксис команд такий же простий, як і

nuitka hello.py

Перейдіть на http://nuitka.net/doc/user-manual.html для отримання додаткової інформації.


6
Ефективніше як? Чому хтось хотів би ним користуватися?
— муру

nuitka дійсно дуже корисна - наприклад, вона дозволяє відправляти програми Python на комп'ютери, де Python не встановлений. Але оскільки nuitka компілює програми Python до машинного коду на C ++, ви можете це обійти.
— користувач258532
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.