2012-01-13 30 views
1

How do I protect my Python codebase so that guests can't see certain modules but so it still works?如何保護我的Python代碼庫,以便客人看不到某些模塊,但它仍然有效?

我的問題是一個附加問題發佈在上面的頁面上。

如果有兩個svn目錄;例如,src/private和src/public和內部用戶將擁有公共和私人目錄,事情將正常工作。

公共用戶將只有src/public。即使用戶沒有簽出,是否可以導入init .py中的src/private?用戶應該能夠鏈接到它來解決src/private中的任何函數依賴關係,但不應該能夠查看文件的內容。

這個問題還有其他解決方案嗎?

回答

2

放棄它。保持好奇的目光根本不可能。例如,看dis模塊:

import dis 
def foo(): print 'bar' 
dis.dis(foo) 

這將產生:

 
    1   0 LOAD_CONST    1 ('bar') 
       3 PRINT_ITEM   
       4 PRINT_NEWLINE  
       5 LOAD_CONST    0 (None) 
       8 RETURN_VALUE 

瞧 - 有你想隱藏,只需導入您的模塊的任意字符串。還有其他模塊和服務可以很好地將這種反彙編轉換爲可讀的Python代碼。

你究竟想完成什麼?那就是,你想要保護什麼?

+0

我想要做的事情基本上與原帖相同。我想保護一些Python代碼(祕密醬油)。 Temp員工/顧問只能查看/使用公共代碼,而無需訪問私有代碼庫。我明白,有意竊取代碼的人會找到一種方法,但是,一個想法是讓人們更難以這樣做。 代碼庫是在svn所以,只是想知道是否有一個簡單的方法來做到這一點,而不是重寫在C/C++或其他需要顯着努力的代碼。 – Nav 2012-01-17 02:01:25

相關問題