You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debug模式下C++调用PyRun_SimpleString导入PIL失败的原因及解决

问题:Debug模式下C++调用Python EasyOCR/PIL触发ImportError

环境配置

  • Windows 11 x64
  • Visual Studio 2022
  • Python 3.11.3(已安装调试符号,项目Debug配置指定链接python311_d.lib)
  • Pillow 10.4.0
  • easyocr 1.7.2

核心代码

C++中调用Python的关键代码片段:

Py_Initialize();
PyRun_SimpleString("import sys");
PyRun_SimpleString("import easyocr");
//Other codes

问题现象

  • Release模式下程序运行完全正常
  • 切换到Debug模式时,触发运行时错误,报错信息如下:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Python311\Lib\site-packages\easyocr\__init__.py", line 1, in <module>
    from .easyocr import Reader
  File "C:\Python311\Lib\site-packages\easyocr\easyocr.py", line 3, in <module>
    from .recognition import get_recognizer, get_text
  File "C:\Python311\Lib\site-packages\easyocr\recognition.py", line 1, in <module>
    from PIL import Image
  File "C:\Python311\Lib\site-packages\PIL\Image.py", line 100, in <module>
    from . import _imaging as core
ImportError: cannot import name '_imaging' from 'PIL' (C:\Python311\Lib\site-packages\PIL\__init__.py)
  • 尝试将PyRun_SimpleString("import easyocr");替换为PyRun_SimpleString("from PIL import Image");,仍报相同错误
  • 额外测试:使用调试版python_d.exe执行导入语句,同样触发相同错误:
PS C:\Users\15819> python_d
Python 3.11.3 (tags/v3.11.3:f3909b8, Apr  4 2023, 23:34:25) [MSC v.1934 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
C:\Python311\Lib\site-packages\pyreadline3\lineeditor\history.py:87: ResourceWarning: unclosed file <_io.TextIOWrapper name='C:\\Users\\15819\\.python_history' mode='r' encoding='utf-8'>
  for line in open(filename, 'r', encoding='utf-8'):
ResourceWarning: Enable tracemalloc to get the object allocation traceback
>>> import sys
>>> import easyocr
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python311\Lib\site-packages\easyocr\__init__.py", line 1, in <module>
    from .easyocr import Reader
  File "C:\Python311\Lib\site-packages\easyocr\easyocr.py", line 3, in <module>
    from .recognition import get_recognizer, get_text
  File "C:\Python311\Lib\site-packages\easyocr\recognition.py", line 1, in <module>
    from PIL import Image
  File "C:\Python311\Lib\site-packages\PIL\Image.py", line 100, in <module>
    from . import _imaging as core
ImportError: cannot import name '_imaging' from 'PIL' (C:\Python311\Lib\site-packages\PIL\__init__.py)
>>> from PIL import Image
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python311\Lib\site-packages\PIL\Image.py", line 100, in <module>
    from . import _imaging as core
ImportError: cannot import name '_imaging' from 'PIL' (C:\Python311\Lib\site-packages\PIL\__init__.py)

咨询内容

  1. 该错误产生的原因是什么?
  2. 如何在Visual Studio中调试该程序?

内容的提问来源于stack exchange,提问作者Object Unknown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 18:44:56