LINUX.ORG.RU

Стоит ли компилировать python-скрипты?

 


0

3

В общем, пишу небольшую прожку на питоне для геймеров, прога которая создает вине-префиксы и т.п. Так вот, незнаю как лучше, компилировать ее в бинарник, или же отдавать прямо скриптом.py? И еще, стоит ли делать установочный деб-пакет, или лучше засунуть все в зип, и пускай пользователи сами решают куда разархивировать прогу с ее компонентами? И третий вопрос, во всех ли дистрибутивах поддержка .svg по дефолту имеется, то есть, стоит ли делать изображения именно в этом формате, или лучше png?



Последнее исправление: lorovec (всего исправлений: 1)

Оцени время интерпретации (сравни со скоростью скомпиленной программы), может у твоей программы это не самое критичное, также как у портеджа, например.

установочный деб-пакет

У деба точно есть жирный плюс: как поставил пакетным манагером, так потом и снёс.

Xenesz ★★★★
()
Ответ на: комментарий от Xenesz

может у твоей программы это не самое критичное

Верно, в моей не критично, мелкая, не каких сложных вычислений, не чего такого.

как поставил пакетным манагером, так потом и снёс.

Ну да, логично.
А по поводу .svg?

lorovec
() автор топика
Ответ на: комментарий от lorovec

так и свг тогда в зависимости... да и геймеры без свг ССЗБ

Thero ★★★★★
()

На современном железе компилирование актуально только для тяжёлых и системных программ.

fragment
()

ЕМНИП, компиляция пистоньих скриптов влияет только на время загрузки, не затрагивая производительность. Не нужно, короче.

vazgen05 ★★★
()

Не знаю, какие бинарники ты собрался делать из питоньих скриптов.

1. Не компилируй. После первого запуска скрипта интерпретатором будет создана его скомпилированная в байткод версия и записана в .pyc-файл рядом с исходным скриптом. При последующих запусках скрипта будет использована его компилированная версия (за исключением тех случаев, когда в исходном скрипте были сделаны изменения после создания .pyc-файла, тогда создается новая байткомпилированная версия).
Предварительная компиляция даёт то очевидное преимущество, что исключается парсинг исходного кода, построение АСТ и собственно сама компиляция. В основном это экономия процессорного времени, другой вопрос каких размеров исходный код, для мелких задач получится скорее всего экономия на спичках.

2. Для распространения, наверное, лучше что-то универсальное, вроде http://pypi.python.org/, зачем привязываться к отдельным дистрам?

Virtuos86 ★★★★★
()

1) т.к. питон все равно компилирует в байт-код при выполнении, замерь время компиляции *.py->*.pyc и от этого пляши

2) если делать деб-пакет, неплохо было бы сделать rpm-пакет, pkgbuild, ebuild, тарбол для слакваршиков и т.д. Понятно, что сборка оных должна рулиться скриптами, которых дергает система сборки (хотя бы банальный makefile)

3) если делаешь пакет, на шаге 2, просто прописываешь ему в зависимости libsvg или как там она называется. Нужность SVG определяется наличием у тебя масштабируемого контента. Необходимости в котором для проги, создающей wine-prefix я лично не вижу. Виджеты должен масштабировать gui-toolkit

marvin_yorke ★★★
()
Ответ на: комментарий от marvin_yorke

питон все равно компилирует в байт-код при выполнении

делается это один раз при запуске либо при установке пакета.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin
python /usr/share/doc/python2.6/examples/Tools/freeze/freeze.py myhelloworld.py
make
./myhelloworld

Например.

Xenesz ★★★★
()
Ответ на: комментарий от lorovec

Куда ж проще.
Делай не компилирующийся скрипт.

X10Dead ★★★★★
()
Ответ на: комментарий от true_admin

под компиляцией имел ввиду «скомпилировать текущий файл» в geany, после этой процедуру появляется скомпиленый .pyc, еще есть компиляция в бинарник: http://satels.blogspot.com/2010/03/python-code-linux-ubuntu.html

lorovec
() автор топика
Ответ на: комментарий от lorovec

ну и нафиг это нужно кроме как сокрыть исходники? Байт-код питонозависим, что работает с твоим интерпретатором не заведётся на другом. Это помимо того что пути зависят от версии питона. В новых, например, оно в __pycache__ живёт.

true_admin ★★★★★
()

1. Отдавай скриптом. Не отбирай преимущества скриптовых языков. Много программ распространяются как есть (gmusicbrowser тот же).

2. Тарболл подойдет многим. Каждый сможет создать себе пакет,если хочет держать систему архичистой. Кто же не умеет - вполне запустит скрипт. Итого: и ты не выполняешь лишнюю работу, и остальным по потребностям.

3. Опционально. Определяй наличие.

chinarulezzz ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.