python编译so和pyd文件

本文最后更新于:7 个月前

python代码即便是编译成pyc也同样可以被反编译,通常为了产品发布跟代码保护,会编译成so(linux)或者pyd(windows)。

配置

主要流程是,先调用Cython包将python代码编译成c代码,再将c代码编译成so文件跟pyd文件。由于使用了gcc,所以需要安装对应的build工具。在windows平台可以通过Visual Studio Installer安装对应的包。

Visual Studio Installer 配置C环境

Linux 需要自行配置下c++生成工具。

运行

参考git项目PythonCompilerC,一大部分工作在于对目录结构的处理,而这个项目本身生成的so/pyd文件全部在对应的build_path下,原有的目录结构消失。并且,由于不同平台的命令行格式不一样,导致编译的时候出了很多bug。对此做了一些修改,具体项目参见PythonCompileSo

将本项目放到要编译的项目的目录下。注意项目中的__init__.py文件需要删掉,这部分编译会出现字符错误。

Windows平台:

1
python PROJECTPATH\scripts\compile.py --project-dir PROJECTPATH --build-lib BUILDPATH

Linux平台:

1
python PROJECTPATH/scripts/compile.py --project-dir PROJECTPATH --build-lib BUILDPATH

python编译so和pyd文件
https://coldison.github.io/2022/07/18/python编译so和pyd文件/
作者
Coldison
发布于
2022年7月18日
更新于
2022年7月18日
许可协议