Как развернуть настольное приложение Python? - PullRequest
30 голосов
/ 02 октября 2008

Я запустил персональное приложение на python, которое запускается на рабочем столе. Я использую wxPython в качестве инструментария GUI. Если есть спрос на этот тип приложений, я бы хотел коммерциализировать его.

Я не знаю о развертывании "реальных" приложений Python, хотя в прошлом я использовал py2exe с переменным успехом. Как бы я запутал код? Можно ли как-то развернуть только байт-код?

Идеальное решение не поставит под угрозу мою интеллектуальную собственность (исходный код), не потребует прямой установки Python (хотя я уверен, что для этого потребуется встроенный интерпретатор) и будет кроссплатформенным (Windows, Mac и Linux). Кто-нибудь знает какие-либо инструменты или ресурсы в этой области?

Спасибо.

Ответы [ 5 ]

13 голосов
/ 03 октября 2008

Вы можете распространять скомпилированный байт-код Python (файлы .pyc) вместо исходного кода. Вы не можете предотвратить декомпиляцию в Python (или на любом другом языке, на самом деле). Вы можете использовать обфускатор, например pyobfuscate , чтобы конкурентам было более неприятно расшифровывать ваш декомпилированный источник.

Как сказал Алекс Мартелли в этой теме , если вы хотите сохранить свой код в секрете, вы не должны запускать его на чужих машинах.

IIRC, когда я в последний раз использовал cx_Freeze , он создал DLL для Windows, что устранило необходимость установки на Python. Это, по крайней мере, стоит проверить.

2 голосов
/ 02 октября 2008

Ух, там много вопросов:

  • Можно запустить файл байт-кода (.pyc) непосредственно из интерпретатора Python, но я не видел доступных инструментов для запутывания байт-кода.

  • Я не знаю ни одного решения для развертывания "все в одном", но:

    • Для Windows вы можете использовать NSIS (http://nsis.sourceforge.net/Main_Page). Проблема здесь в том, что, хотя OSX / * nix поставляется с Python, Windows не делает. Если вы не хотите создавать двоичный файл с py2exe Я не уверен, какие проблемы с лицензированием будут связаны с распространением среды выполнения Python (не говоря уже о технических).

    • Вы можете упаковать дистрибутив OS X, используя формат "bundle", и * NIX имеет свои собственные соглашения для установки программного обеспечения - обычно это скрипт "make install".

Надеюсь, это было полезно.

1 голос
/ 03 октября 2008

Может, IronPython может вам что-то предложить? Бьюсь об заклад, эти .exe / .dll-файлы могут быть довольно заблокированы. Не уверен, как такие функции работают в моно, поэтому не знаю, как это работает в Linux / OS X ...

0 голосов
/ 07 марта 2017

Попробуйте использовать scraZ-обфускатор (http://scraZ.me). Это обфускатор для байт-кода, а не для исходного кода. В бесплатной версии есть хорошие, но не идеальные методы запутывания. PRO версия имеет очень очень сильную защиту для байт-кода. (после запутывания байт-кода декомпиляция невозможна)

0 голосов
/ 21 января 2009

Я успешно использую py2exe в Windows. Код нужно немного изменить, чтобы анализ кода подобрал все необходимые модули, но кроме этого он работает.

Что касается Linux, существует несколько важных форматов распространения:

  • DEB (Debian, Ubuntu и другие производные)
  • RPM (RedHat, Fedora, openSuSE)

Создание DEB не особенно сложно, особенно если вы уже используете distutils / setuptools. Некоторые подсказки приведены в документе политики , примеры для упаковки приложений Python можно найти в хранилище .

У меня нет опыта работы с RPM, но я уверен, что примеров можно найти достаточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...