Python编程语言有哪些鲜为人知但有用的功能?
我正在开发一个Python软件,将分发给我的雇主的客户.我的雇主希望使用时间限制的许可证文件来限制软件的使用.
如果我们分发.py文件甚至.pyc文件,那么很容易(反编译)删除检查许可文件的代码.
另一个方面是我的雇主不希望我们的客户阅读代码,担心代码可能被盗或至少是"新颖的想法".
有没有一个很好的方法来处理这个问题?优选使用现成的解决方案.
该软件将在Linux系统上运行(所以我认为py2exe不会这样做).
我已阅读在 Cython 中制作可执行文件和 BuvinJ 对如何有效地混淆 Python 代码的回答?并想测试编译后用 Cython 编译的源代码是否真的“不再存在”。确实流行使用 Cython 是一种保护 Python 源代码的方法,例如参见文章Protecting Python Sources With Cython。
让我们以这个简单的例子为例test.pyx:
import json, time # this will allow to see what happens when we import a library
print(json.dumps({'key': 'hello world'}))
time.sleep(3)
print(1/0) # division error!
Run Code Online (Sandbox Code Playgroud)
然后让我们使用 Cython:
cython test.pyx --embed
Run Code Online (Sandbox Code Playgroud)
这会产生一个test.c. 让我们编译它:
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64
cl test.c /I C:\Python37\include /link C:\Python37\libs\python37.lib
Run Code Online (Sandbox Code Playgroud)
有用!它生成了一个 140KB 的test.exe可执行文件,不错! …
我们有一个用Python实现的业务关键程序.我们的老板不希望别人,特别是我们的竞争对手知道它是如何设计和实施的.所以我必须找到一种方法来加密它.我首先想到了pyc和pyo,但很快我发现它们很可能被拆解了.我想加密我们的源代码,但我不知道该怎么做?你能帮帮我吗?任何指导都将受到高度赞赏.
我使用python 2.5并从C:\ util\Python25\Lib\site-packages目录导入名为"irit.py"的文件.这个文件导入文件"_irit.pyc,它位于同一个目录中.它工作得很好,做了我想要的.然后,我用python版本2.6.4尝试了同样的东西."irit.py"在C:\中util\Python26\Lib\site-packages已导入,但"_irit.pyc"(与26之前的同一目录中,如前所述)尚未找到.我收到错误消息:
导入_irit中的文件"C:\ util\Python26\lib\site-packages\irit.py"第5行ImportError:DLL加载失败:找不到指定的模块.
有人可以帮助我理解问题以及如何解决它?谢谢,Almog.
如何从客户那里混淆/隐藏我的Python代码,以便他无法改变他喜欢的来源?
我知道没有有效的方法可以隐藏Python代码,因此无法读取它.我只想要一个简单的保护,一个不知道自己在做什么的人不能只用文本编辑器打开源文件,并且不费吹灰之力地进行更改或轻松理解所有内容.因为我的代码编写得非常容易理解,所以我想隐藏我在第一时使用的主要原则.
如果有人真的想了解我做了什么,他会的.我知道.
那么你有一个常用的方法来为python代码提供简单的保护吗?