置顶 Ark_py 于 2020-07-11 20:01:10 发布 761 收藏 6
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Python这门解释型语言有一个致命的缺点:使用Python开发的软件包含了pyc文件,pyc文件能够被反编译成为源代码,这样对于一些企业开发的软件来说非常危险(这也是为什么Python不常被软件开发公司使用,除了谷歌),今天我们要学习一下Python保护源代码的一招:py转pyd文件。
我们需要用到的工具有:
- Microsoft Visual Studio环境
- Cython
- 由pip下载的setuptools
- 一个自制的python小程序
- Python环境
我们需要借助C语言生成pyd代码,因为Python一般是C语言实现的,我们先要下载所需的环境。
我们需要下载的是Microsoft Visual Studio(不是VSCode),下载了之后我们进行安装,进入https://visualstudio.microsoft.com/zh-hans/,选择Community 2019,
然后安装Visual Studio Installer,看到这个界面。
我们需要下载的工作负载是C++桌面开发这个选项,但是不是所有都要选择,只要选择三个项目:MSVC生成工具,Win10 SDK(版本根据你的win10的确切版本而定)还有C++分析工具,这三个缺一不可,总共需要下载将近3.54GB的内容,但是我觉得有点小题大做,但是这没办法,微软目前只有Visual Studio for Python27这个软件,没有适用于Python3的,所以我们必须下载这些东西。
静静等待下载的时候,我们可以创建一个小小的Python程序,在这里命名为setup.py,写入如下内容:
import setuptools
from Cython.Build import cythonize
from setuptools.extension import Extension
extensions = [Extension('名字', ['文件路径'])]
setuptools.setup(ext_modules = cythonize("文件路径"))
在这些代码中我们可以发现,我们还缺少Cython和setuptools,我们需要使用python环境的pip来下载。Win+R打开运行,输入cmd运行命令提示符,然后输入指令:
pip install cython
pip install —upgrade setuptools(通常setuptools是已经安装好的,最好更新一下)
操作上述指令的时候遇到任何问题,可以参照这篇文章:
pip安装pyinstaller等第三方模块老是报错?多种常见错误,进来看看解决方案!
但是前提是你安装python环境的时候勾选了Add Python to PATH,否则你输入pip它不鸟你。。。
安装好了cython,setuptools和VS环境中的工作负载之后,我们就可以开始转换代码了,我们传参运行我们制作的setup.py文件,进入cmd切换到所在目录,然后输入指令(下图为完整生成过程,发生错误的可以以此做个对照):
python setup.py build_ext
然后我们可以看到首先将py文件转换为c代码,然后结合obj文件使用VS环境中的cl.exe进行编译,最后完成了代码的生成。
完成之后我们发现多出来一个build文件夹,我们进入lib文件夹,之后就能发现我们编译好的pyd文件,把这个文件移出来,可以当成py文件进行导入,只是你不能找到源代码而已,这么做就保证了源代码安全。
好了今天为大家介绍的py转换为pyd文件的教程就到这里结束了,感谢大家阅读,如果遇到什么问题可以在评论区留言。
本文为作者原创,非经本人允许,禁止转载。