news 2026/5/1 6:13:34

python --打包pyd或so文件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python --打包pyd或so文件

编译pyd或so

utils_ccc.py 文件(核心)

# coding: utf-8importargparsefromsetuptoolsimportsetup,ExtensionfromCython.Buildimportcythonize# python 3.10.3 cython==3.1.6frompathlibimportPathfromloguruimportloggerimportshutilimportsys BASE_DIR=Path(__file__).resolve().parent# 项目根路径PYD_PATH=BASE_DIR.joinpath('output_pyd')# pyd输出文件TEMP_PATH=BASE_DIR.joinpath('temp')# 临时文件classCompileTools(object):'''编译'''def__init__(self,py_file:str):self.py_file:Path=Path(py_file)# 待编译文件self._module_name=self.py_file.stem# 文件名(无后缀)self.__C_PATH=BASE_DIR.joinpath(f'{self._module_name}.c')# c文件绝对路径self._system_win:int=1ifsys.platform.startswith("win")else0# 1为win 0为linuxdefunlink_file(self):'''重置目录'''shutil.rmtree(PYD_PATH)# 清空pyd文件夹logger.debug(f'清空:[{PYD_PATH}]')def_get_ext_compile_args_and_compile_args(self)->tuple:'''根据系统生成编译参数'''ifself._system_win==1:# windowsext_compile_args=["/std:c99",# 指定 C99 标准"/O2",# 优化编译(对应 GCC 的 -O2)"/LD"# 生成动态库(对应 GCC 的 -shared)]ext_link_args=[]else:ext_compile_args=["-std=c99",# 指定 C99 标准"-O2",# 优化编译"-fPIC"# 位置无关代码(Linux 必需)]ext_link_args=["-shared"]# 生成动态库returnext_compile_args,ext_link_argsdefstart(self):'''编译'''PYD_PATH.mkdir(parents=True,exist_ok=True)# 创建文件夹TEMP_PATH.mkdir(parents=True,exist_ok=True)# 创建文件夹ext_compile_args,ext_link_args=self._get_ext_compile_args_and_compile_args()ext=Extension(# 定义扩展模块name=self._module_name,# 定义编译后扩展模块的 import 名称(核心,决定你怎么导入)sources=[str(self.py_file),],# 仅作为「扩展模块的元信息标识」(类似标签),不影响 import、不影响编译结果extra_compile_args=ext_compile_args,# 强制编译器用 C99(新标准):支持在 for 循环里直接声明变量(这是现在写 C 代码的常规写法)extra_link_args=ext_link_args# 链接参数(Linux 需加 -shared))setup(# 执行编译name=self._module_name,ext_modules=cythonize(ext,compiler_directives={"language_level":"3",# 强制 Python3 语法"always_allow_keywords":True,# 兼容关键字参数}),script_args=["build_ext"
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 16:52:26

效率直接起飞!千笔,人气爆表的AI论文网站

你是否曾为论文选题发愁,面对空白文档无从下手?是否在反复修改中感到力不从心,却始终达不到理想效果?论文写作不仅是学术能力的考验,更是时间与精力的挑战。对于每一位本科生来说,这都是一段既重要又艰难的…

作者头像 李华
网站建设 2026/4/23 3:39:07

从工具到伙伴:以“系统性思维”迎接AI推理赋能的新创业时代

阿里云通义千问Qwen3-Max-Thinking模型的发布,犹如一枚投入湖面的石子,其激起的涟漪远不止于技术圈。它清晰地揭示了一个趋势:AI的“思考”能力已从实验室走向产业前沿,正在重新定义“价值创造”的方式。对于每一位在实体经济、知…

作者头像 李华
网站建设 2026/5/1 5:42:59

导师推荐!AI论文工具 千笔写作工具 VS speedai 更贴合本科生需求!

随着人工智能技术的迅猛发展,AI辅助写作工具正逐步成为高校学生完成毕业论文的重要助手。越来越多的本科生开始借助这类工具提升写作效率、优化内容结构,甚至解决选题与文献综述等难题。然而,面对市场上功能各异、定位模糊的AI写作平台&#…

作者头像 李华
网站建设 2026/5/1 6:08:50

【Django毕设全套源码+文档】基于python的贫困生资助管理系统的设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/25 12:01:44

【Django毕设全套源码+文档】基于django的共享咖啡机运维故障报修系统的设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/29 23:46:57

赶deadline必备 AI论文工具 千笔AI VS speedai,本科生写作神器!

随着人工智能技术的迅猛迭代与普及,AI辅助写作工具已逐步渗透到高校学术写作场景中,成为本科生、研究生完成毕业论文不可或缺的辅助手段。越来越多面临毕业论文压力的学生,开始依赖各类AI工具简化写作流程、提升创作效率。但与此同时&#xf…

作者头像 李华