2008-10-02 80 views
28

我已經開始在桌面上運行的個人python應用程序。我使用wxPython作爲GUI工具箱。如果需要這種類型的應用程序,我可能希望將其商業化。如何部署Python桌面應用程序?

我不知道部署「真實生活」的Python應用程序,儘管過去我已經使用了py2exe,並取得了不同的成功。我將如何混淆代碼?我可以以某種方式只部署字節碼嗎?

一個理想的解決方案不會危害我的知識產權(源代碼),不需要直接安裝Python(儘管我相信它需要一些嵌入式解釋器),並且會跨平臺(Windows ,Mac和Linux)。有沒有人知道這方面的任何工具或資源?

謝謝。

+3

如何保護python代碼?嗯... http://stackoverflow.com/questions/261638/how-do-i-protect-python-code/261817#261817 – 2009-08-15 10:02:57

回答

2

哇,裏面還有很多的問題:

  • 它可以運行字節碼(.pyc文件)直接從Python解釋文件,但我還沒有看到任何字節碼混淆工具可用。

  • 我不知道有任何 「多合一」 部署解決方案,但:

    • 對於Windows,你可以使用NSIS(http://nsis.sourceforge.net/Main_Page)。這裏的問題是,雖然OSX/* nix帶有python,但Windows不支持。如果你不願意用py2exe創建一個二進制文件,我不確定許可問題將圍繞Python運行時環境的分發(更不用說技術問題了)。

    • 您可以使用「捆綁」格式打包OS X發行版,並且* NIX有自己的安裝軟件約定 - 通常是「make install」腳本。

希望這是有幫助的。

+2

Python的字節碼是非常高的水平和trivially反編譯;分發.pyc文件實際上不是您想要依賴的任何形式的保護。 – 2008-10-02 20:11:33

12

您可以分發編譯的Python字節碼(.pyc文件)而不是源文件。你不能阻止在Python(或任何其他語言,真的)反編譯。你可以使用像pyobfuscate這樣的混淆器來讓競爭對手破解你的反編譯源代碼更令人討厭。

由於Alex Martelli說in this thread,如果你想保密你的代碼,你不應該在別人的機器上運行它。

IIRC,我最後一次使用cx_Freeze它爲Windows創建了一個DLL,它消除了本地Python安裝的必要性。這至少值得檢查。

1

也許IronPython可以爲你提供一些東西嗎?我敢打賭,這些.exe/.dll文件可能會被鎖定。不知道這些功能如何在單聲道工作,因此不知道如何在Linux/OS X上工作...

0

我一直在Windows上使用py2exe取得了不錯的成功。代碼需要修改一下,以便代碼分析可以獲取所需的所有模塊,但除此之外,它可以工作。

至於Linux中,有幾個重要的分發格式:

  • DEB(Debian的,Ubuntu和其它衍生物)
  • RPM(紅帽,Fedora的,openSUSE的)

德布斯AREN」特別難做,特別是當你已經使用distutils/setuptools。在the policy document中給出了一些提示,可以在repository中找到打包Python應用程序的示例。

我對RPM沒有任何經驗,但我確信有足夠的例子可以找到。

0

嘗試使用scraZ混淆器(http://scraZ.me)。 這是字節碼的混淆器,不適用於源代碼。 免費版本有很好的,但不是完美的混淆方法。 PRO版本對字節碼有很強的保護。 (在字節碼混淆之後無法進行反編譯)

相關問題