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






Ух ты, там много вопросов:
Можно запустить файл байт-кода (.pyc) непосредственно из интерпретатора Python, но я не видел доступных инструментов для обфускации байт-кода.
Я не знаю ни одного решения для развертывания "все в одном", но:
Для Windows вы можете использовать NSIS (http://nsis.sourceforge.net/Main_Page). Проблема здесь в том, что OSX / * nix поставляется с python, а Windows - нет. Если вы не хотите создавать двоичный файл с помощью py2exe, я не уверен, какие проблемы с лицензированием будут связаны с распространением среды выполнения Python (не говоря уже о технических).
Вы можете упаковать дистрибутив OS X, используя формат «bundle», а * NIX имеет свои собственные соглашения по установке программного обеспечения - обычно это сценарий «make install».
Надеюсь, это было полезно.
Байт-код Python очень высокоуровневый и легко декомпилируется; распространение файлов .pyc на самом деле не является какой-либо формой защиты, на которую вы хотите полагаться.
Вы можете распространять скомпилированный байт-код Python (файлы .pyc) вместо источника. Вы не можете предотвратить декомпиляцию на Python (или на любом другом языке). Вы можете использовать обфускатор, например пиобфускат, чтобы конкурентам было более неприятно расшифровывать ваш декомпилированный исходный код.
Как говорит Алекс Мартелли в этой теме, если вы хотите сохранить свой код в секрете, вам не следует запускать его на чужих машинах.
IIRC, в последний раз, когда я использовал cx_Freeze, он создал DLL для Windows, что устранило необходимость в установке собственного Python. По крайней мере, это стоит проверить.
Может быть, IronPython может вам что-нибудь предложить? Бьюсь об заклад, эти файлы .exe / .dll могут быть довольно заблокированы. Не уверен, как такие функции работают в моно, поэтому не знаю, как это работает в Linux / OS X ...
Я успешно использую py2exe в Windows. Код нужно немного изменить, чтобы анализ кода уловил все необходимые модули, но в остальном он работает.
Что касается Linux, существует несколько важных форматов распространения:
Сделать DEB не так уж сложно, особенно если вы уже используете distutils / setuptools. Некоторые подсказки даются в программный документ, примеры упаковки приложений Python можно найти в хранилище.
У меня нет опыта работы с RPM, но я уверен, что можно найти достаточно примеров.
Попробуйте использовать обфускатор scraZ (http://scraZ.me). Это обфускатор для байт-кода, а не для исходного кода. В бесплатной версии есть хорошие, но не идеальные методы обфускации. Версия PRO имеет очень сильную защиту для байт-кода. (после обфускации байткода декомпиляция невозможна)
Как вы защищаете код Python? Ну ... stackoverflow.com/questions/261638/how-do-i-protect-python-c ode /…