1

如何保护我的 Python 代码库,让访客看不到某些模块,但它仍然可以工作?

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

如果有两个svn目录;例如, src/private 和 src/public 和 internal 用户将同时拥有公共和私人目录,并且一切正常。

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

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

4

2 回答 2

2

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

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

于 2012-01-13T22:37:41.667 回答
2

放弃。好奇的眼睛基本上是不可能的。例如,查看dis模块:

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

这将产生:

  1 0 LOAD_CONST 1 ('条')
              3 PRINT_ITEM          
              4 PRINT_NEWLINE       
              5 LOAD_CONST 0(无)
              8 RETURN_VALUE   

瞧——有任何你想隐藏的字符串,只需导入你的模块。还有其他模块和服务可以很好地将此类反汇编转换为可读的 Python 代码。

你到底想完成什么?也就是说,您具体要保护什么?

于 2012-01-13T22:23:23.003 回答