Description
🔎 Search before asking
- I have searched the PaddleOCR Docs and found no similar bug report.
- I have searched the PaddleOCR Issues and found no similar bug report.
- I have searched the PaddleOCR Discussions and found no similar bug report.
🐛 Bug (问题描述)
When packaging the paddleocr library into an executable file (exe) using the command:
nuitka --standalone --include-package=paddle --include-package=paddleocr --include-package=openvino --include-module=paddleocr.ppocr --include-module=paddleocr.ppocr.data --include-module=paddleocr.ppocr.losses --include-module=paddleocr.ppocr.metrics --include-module=paddleocr.ppocr.modeling --include-module=paddleocr.ppocr.optimizer --include-module=paddleocr.ppocr.postprocess --include-module=paddleocr.ppocr.utils --include-data-dir=D:\projectstest\Server_1\paddleocr\pretrained_models=./paddleocr/pretrained_models --enable-plugin=numpy --enable-plugin=multiprocessing server.py
the following error occurs when running server.exe:
D:\projectstest\Server_1\server.dist>server.exe
Traceback (most recent call last):
File "D:\projectstest\Server_1\server.dist\server.py", line 26, in
File "D:\projectstest\Server_1\server.dist\utils\info.py", line 3, in
File "D:\projectstest\Server_1\server.dist\utils\analyze\ocr_detect.py", line 21, in
File "D:\projectstest\Server_1\server.dist\paddleocr_init_.py", line 14, in
from .paddleocr import (
File "D:\projectstest\Server_1\server.dist\paddleocr\paddleocr.py", line 46, in
"tools", os.path.join(dir, "tools/init.py"), make_importable=True
ModuleNotFoundError: No module named 'ppocr'.
Packaging with PyInstaller works correctly, but multiple attempts with Nuitka have failed. The following code snippet is used to force import of ppocr modules to ensure dependency detection during Nuitka packaging:
强制导入ppocr模块,确保nuitka打包时能发现依赖
Force import ppocr modules to ensure Nuitka detects dependencies
import paddleocr.ppocr
import paddleocr.ppocr.data
import paddleocr.ppocr.modeling.architectures
import paddleocr.ppocr.postprocess
import paddleocr.ppocr.metrics
import paddleocr.ppocr.utils.save_load
import paddleocr.ppocr.utils.utility
import paddleocr.ppocr.utils.export_model
🏃♂️ Environment (运行环境)
paddleocr 2.10.0
paddlepaddle-gpu 2.6.1
torch 2.4.1
cuda 11.8
Nuitka 2.7.7
🌰 Minimal Reproducible Example (最小可复现问题的Demo)
强制导入ppocr模块,确保nuitka打包时能发现依赖
import paddleocr.ppocr
import paddleocr.ppocr.data
import paddleocr.ppocr.modeling.architectures
import paddleocr.ppocr.postprocess
import paddleocr.ppocr.metrics
import paddleocr.ppocr.utils.save_load
import paddleocr.ppocr.utils.utility
import paddleocr.ppocr.utils.export_model