PaddlePaddle3.0.0 PaddleOCR2.1.0 torch2.6.0集成报错:OSError: [WinError 127] 找不到指定的程序。 Error loading "xxx\xxx\torch\lib\shm.dll" or one of its dependencies. #14982
Replies: 1 comment
-
你遇到的问题是:在 Windows 10 + Python 3.10 环境下,使用 PaddlePaddle 3.0.0 与 PaddleOCR 2.1.0,并结合 PyTorch 2.6.0(CPU 版)时,先 import paddle 再 import torch 会引发 OSError(找不到 shm.dll 依赖),即: OSError: [WinError 127] 找不到指定的程序。Error loading "xxx\xxx\torch\lib\shm.dll" 而单独引入 torch 或 torch 在 paddle 之前引入则无误。 这类问题的主要原因是 PaddlePaddle 与 PyTorch 之间存在 DLL 加载冲突,尤其是在 Windows 环境中。以下是建议的排查与解决思路: 🔍 问题分析:
✅ 可能的解决方法:
已验证「先 import torch,再 import paddle」正常,因此可作为 workaround 使用——尤其如果你只用 CPU 推理且二者功能无耦合时。
目前你使用的是 pip 安装,非常容易遭遇系统已有 DLL 冲突。建议使用 conda 创建全新环境,例如: conda create -n ppocr python=3.10 这种方式能够隔离 Dll 链接。
PaddleOCR 2.1.0 较旧,建议与之匹配更稳定的 paddlepaddle 版本如 2.3.x。例如: pip install paddlepaddle==2.3.2 相对减少 3.0.0 中 PirExecutor 引入的新行为对依赖的扰动。
确保系统 PATH 中不包含 paddelpaddle 或 pytorch 的临时路径,例如:
可尝试设置环境变量来辅助 DLL 加载路径,例如: import os 注意:Windows 10 的 Python 3.8+ 提供了 os.add_dll_directory(),用于动态加载 DLL。
虽然你已安装 VC++ redistributable,建议确保版本是对应 PyTorch 官方要求版本(通常为 2015-2022 合并版),可通过「应用和功能」中确认。 🛠️ 总结推荐方案:
如果问题仍然存在,请尝试提供更进一步的复现代码或运行日志,以及 Python site-packages 下 padde 和 torch 的安装路径截图,以便于进一步定位。 此问题可能与以下相关但不完全一致的讨论有关(供参考): Response generated by 🤖 feifei-bot | chatgpt-4o-latest |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
环境:windows10 python310
本地运行deomo,使用的是cpu推理的paddle。
单独引入torch没有问题:
try: import torch print(f"PyTorch Version: {torch.__version__}") print("PyTorch imported successfully.") # 尝试创建一个简单的 Tensor a = torch.tensor([1.0, 2.0]) print(f"Tensor created: {a}") except ImportError as e: print(f"ImportError loading torch: {e}") import traceback traceback.print_exc() except OSError as e: print(f"OSError loading torch or its dependencies: {e}") import traceback traceback.print_exc() except Exception as e: print(f"An unexpected error occurred: {e}") import traceback traceback.print_exc()
输出:
PyTorch Version: 2.6.0+cpu PyTorch imported successfully. Tensor created: tensor([1., 2.])
引入paddle就报错了:
` try:
print("Attempting to import paddle...")
import paddle
print(f"PaddlePaddle Version: {paddle.version}")
paddle.utils.run_check() # Optional: run paddle self-check
print("PaddlePaddle imported successfully.")
输出:
`PaddlePaddle Version: 3.0.0-rc1
Running verify PaddlePaddle program ...
I0407 14:24:11.528790 29112 pir_interpreter.cc:1508] New Executor is Running ...
I0407 14:24:11.541791 29112 pir_interpreter.cc:1531] pir interpreter is running by multi-thread mode ...
PaddlePaddle works well on 1 CPU.
PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.
PaddlePaddle imported successfully.
Attempting to import torch AFTER paddle...
Traceback (most recent call last):
File "xxx\xxx\test.py", line 10, in
import torch
File "xxx\xxx\torch_init_.py"`
目前已经试过以下办法解决均无果:
请问有什么办法可以尝试解决?
Beta Was this translation helpful? Give feedback.
All reactions