假设项目结构是这样:
my_project/
├── main_gui.py # 主文件
├── utils/ # 工具文件夹(模块)
│ ├── __init__.py
│ ├── a.py
│ └── b.py
└── widgets/ # 组件文件夹├── __init__.py├── window.py└── dialog.py
打包 utils 文件夹
uv run python -m nuitka --module utils --include-package=utils --plugin-enable=pyside6 --static-libpython=no
如果用到Qt(PySide6/PyQt6,必须加plugin-enable=pyside6或者plugin-enable=pyqt6
如果没有安装Python3-dev,必须加--static-libpython=no
--include-package=utils 把所有utils文件夹内子文件、子文件夹全部打包进去
打包 widgets 文件夹
uv run python -m nuitka --module widgets --include-package=widgets --plugin-enable=pyside6 --static-libpython=no
三、打包后效果
原来的文件夹
utils/
├── __init__.py
├── a.py
└── b.py
打包后 变成一个独立模块文件:
utils.so (Linux)
或
utils.pyd (Windows)
