添加到:如何保护我的Python代码库,以便访客无法查看某些模块,但仍然有效?

时间:2012-01-13 22:12:25

标签: python svn permissions source-code-protection

How do I protect my Python codebase so that guests can't see certain modules but so it still works?

我的问题是上面页面上发布的添加问题。

如果有两个svn目录;例如,src / private和src / public和内部用户将同时拥有公共和私有目录,事情就可以正常工作了。

公共用户只有src / public。是否可以在 init .py中导入src / private,即使用户没有检出它?用户应该能够链接到它以解决src / private中的任何功能依赖性,但是不应该能够查看文件的内容。

此问题还有其他解决方案吗?

2 个答案:

答案 0 :(得分: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   

Voila - 只需导入模块,就可以隐藏任何字符串。还有其他模块和服务可以很好地将这些反汇编转换为可读的Python代码。

你到底想要完成什么?那就是你要特别保护什么?

答案 1 :(得分:2)

您始终可以将核心功能移至某些C或C ++模块,并仅分发模块的已编译版本。

请参阅http://docs.python.org/extending/extending.html