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中的任何功能依赖性,但是不应该能够查看文件的内容。
此问题还有其他解决方案吗?
答案 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 ++模块,并仅分发模块的已编译版本。