
一、项目结构如下your_project/├── match/│ ├── __init__.py # 空文件声明为包│ └── matcher.py # 包含 compete_image 类├── stitch/│ ├── __init__.py # 空文件声明为包│ └── total_stich_side.py # 包含 TotalStich_side 类└── multiReadStitchClassClasss_side.py # 主模块包含 multiDealImg 类2、确保代码中的导入正确stitch/total_stich_side.pyfrom match.matcher import compete_image # 绝对导入class TotalStich_side:def __init__(self):self.processor compete_imagemultiReadStitchClassClasss_side.pyfrom stitch.total_stich_side import TotalStich_sidefrom match.matcher import compete_imageclass multiDealImg:def __init__(self):self.stitcher TotalStich_side()self.image_processor compete_image()3. 编译步骤步骤 1编译底层模块match/matcher.pynuitka --module match/matcher.py \--output-dirbuild/match \--include-packagematch--output-dirbuild/match将编译后的.so文件输出到build/match。--include-packagematch确保match包被包含。步骤 2编译中间模块stitch/total_stich_side.pynuitka --module stitch/total_stich_side.py \--output-dirbuild/stitch \--include-packagestitch \--include-modulematch.matcher # 显式包含依赖的 match 模块步骤 3编译主模块multiReadStitchClassClasss_side.pynuitka --module multiReadStitchClassClasss_side.py \--output-dirbuild \--include-packagematch \--include-packagestitch \--follow-import-tostitch.total_stich_side \--follow-import-tomatch.matcher4. 编译后目录结构编译完成后目录结构如下your_project/└── build/├── match/│ ├── match.so # 或 .pydWindows│ └── __init__.so # 包的 __init__ 文件自动生成├── stitch/│ ├── total_stich_side.so│ └── __init__.so└── multiReadStitchClassClasss_side.so5. 测试程序创建test.py并放置在项目根目录与build同级import sys import os # 添加编译后的模块路径 sys.path.extend([ os.path.abspath(build), # 主模块路径 os.path.abspath(build/match), # match 包路径 os.path.abspath(build/stitch) # stitch 包路径 ]) from multiReadStitchClassClasss_side import multiDealImg # 实例化并运行 processor multiDealImg() print(所有模块调用成功)6. 完整编译脚本# 清理旧编译文件rm -rf build/# 编译 match 模块nuitka --module match/matcher.py \--output-dirbuild/match \--include-packagematch# 编译 stitch 模块nuitka --module stitch/total_stich_side.py \--output-dirbuild/stitch \--include-packagestitch \--include-modulematch.matcher# 编译主模块nuitka --module multiReadStitchClassClasss_side.py \--output-dirbuild \--include-packagematch \--include-packagestitch \--follow-import-tostitch.total_stich_side \--follow-import-tomatch.matcher