2013-10-31 30 views
5

我在mac osx上的python中製作應用程序10.8.5我通過使用py2app將python腳本轉換爲應用程序。但是,在應用程序中,On Show Package Contents-->Contents-->Resources原始代碼存在。我不想通過發佈我的應用程序作爲安全問題向其他人展示我的代碼。我使用(.pyc)代碼刪除了(.py)代碼,在這種情況下,應用程序無法正常工作。 請爲它提供一些方法,我也在其他問題上搜索,但沒有得到期望的結果。我的setup.py是由py2app提供的應用程序中的Python代碼

from setuptools import setup 

APP=['myapp.py'] 
DATA_FILES= [('',['config.cfg'])] 
OPTIONS={'iconfile':'cc.icns','argv_emulation': True,'plist':{'CFBundleShortVersionString':'1.0'}} 

setup(
    app=APP, 
    data_files=DATA_FILES, 
    options={'py2app': OPTIONS}, 
    setup_requires=['py2app'] 
    ) 

回答

1

最簡單的解決方法是在myapp.py移動代碼到另一個模塊和導入模塊中myapp.py。

請注意,主腳本以外的模塊只能進行字節編譯(如.pyc文件),並且這些文件仍然可以輕鬆轉換爲源代碼。

字節編譯腳本文件是我的待辦事項列表上,但更復雜,只是由.pyc文件的文件替換.py文件,你noticted :-)

+0

是否有這樣做的任何其他方式。我想要更多的安全性。導入模塊時,在time.sleep(2)中顯示錯誤爲'屬性錯誤':'NoneType'對象沒有屬性sleep – imp

+0

「我想要更多的安全性。」 - 請注意,沒有「安全」代碼。你可以對它進行模糊處理,編譯,用任何你喜歡的語言編寫,但是如果有人在意足夠的東西來找出它裏面的東西,它們總是可以反編譯和再混合它,即使是一個簡單的'strings'命令,你可以希望得到的最多的東西就是努力剔除比它的價值更大的麻煩 – foo

+0

@foo ok導入模塊時,在time.sleep(2)中顯示錯誤爲'屬性錯誤':' NoneType'對象沒有屬性睡眠,有想法爲什麼它顯示 – imp

相關問題