2010-09-08 4 views
7

Итак, у меня есть скрипт python, который опирается на пару модулей. В частности, pexpect и pyinoitify. Я знаю, что вы можете скомпилировать скрипт python в .exe в Windows, но есть ли что-то относительно эквивалентное в linux? Я не забочусь о том, чтобы быть бинарным, я просто хотел бы иметь возможность распространять свой скрипт, не требуя отдельной установки pexpect и pyinotify. Это возможно/стоит?компилировать скрипт python в linux

ответ

6

cx_Freeze - это кросс-платформенный способ «заморозить» скрипт Python в автономную двоичную форму. По их сайту:

cx_Freeze представляет собой набор скриптов и модулей для замораживания Python скриптов Into исполняемых файлов во многом таким же образом, что py2exe и py2app делать. В отличие от эти два инструмента, cx_Freeze - это перекрестная платформа и должны работать на любой платформе , на которой работает сам Python. Для этого требуется Python 2.3 или выше с , он использует импорт zip , который был представлен в этой версии .

1

Вообще, если первая линия

#!/usr/bin/env python 

И файл имеет режим "х" набор (chmod +x yourfile.py)

Тогда это исполняемый файл. Не требуется компиляция.

И да, люди должны установить то, от чего вы зависите. Это (а) проще и (б) менее удивительно, если они действительно делают установку, поэтому они знают, что происходит на самом деле.

+2

Вопрос заключается в распространении сценария вместе с его зависимостями, а не только его выполнении. – katrielalex

0

В linux старайтесь избегать таких вещей. Большинство менеджеров пакетов отлично справляются с зависимостями, просто распространяют ваш скрипт и рассказывают, какие зависимости ему нужны.

+1

Что делает менеджер пакетов с модулями python? – Falmarri

+0

Распределите модуль как пакет и объявите зависимость от других пакетов модулей, в которых он нуждается. Проблема решена (хотя и не переносима). – tripleee