Я пишу программу на C++, которая использует библиотеку Python EasyOCR для чтения текста. Я написал такой код:
Py_Initialize();
PyRun_SimpleString("import sys");
PyRun_SimpleString("import easyocr");
//Other codes
Когда я запускаю его в режиме Release, он работает нормально, но если я перехожу в режим отладки, он сообщает об ошибке времени выполнения:
Traceback (most recent call last):
File "", line 1, in
File "C:\Python311\Lib\site-packages\easyocr\__init__.py", line 1, in
from .easyocr import Reader
File "C:\Python311\Lib\site-packages\easyocr\easyocr.py", line 3, in
from .recognition import get_recognizer, get_text
File "C:\Python311\Lib\site-packages\easyocr\recognition.py", line 1, in
from PIL import Image
File "C:\Python311\Lib\site-packages\PIL\Image.py", line 100, in
from . import _imaging as core
ImportError: cannot import name '_imaging' from 'PIL' (C:\Python311\Lib\site-packages\PIL\__init__.py)
Потом я попытался бежать
PyRun_SimpleString("from PIL import Image");
вместо
PyRun_SimpleString("import easyocr");
но снова появилась та же ошибка:
Traceback (most recent call last):
File "", line 1, in
File "C:\Python311\Lib\site-packages\PIL\Image.py", line 100, in
from . import _imaging as core
ImportError: cannot import name '_imaging' from 'PIL' (C:\Python311\Lib\site-packages\PIL\__init__.py)
Я использую Visual Studio 2022 в Windows 11 x64 для написания кода на C++. Моя версия Python
Python 3.11.3 (tags/v3.11.3:f3909b8, Apr 4 2023, 23:49:59) [MSC v.1934 64 bit (AMD64)] on win32
Моя версия Pillow — 10.4.0, а версия easyocr — 1.7.2
Я уже загрузил отладочную версию символы через установщик Python и настройте конфигурацию отладки проекта на использование python311_d.lib.
Я хочу знать, почему он сообщает о такой ошибке и что мне делать для отладки эту программу в Visual Studio.
Обновление:
Я использую отладочную версию Python (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
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 "", line 1, in
File "C:\Python311\Lib\site-packages\easyocr\__init__.py", line 1, in
from .easyocr import Reader
File "C:\Python311\Lib\site-packages\easyocr\easyocr.py", line 3, in
from .recognition import get_recognizer, get_text
File "C:\Python311\Lib\site-packages\easyocr\recognition.py", line 1, in
from PIL import Image
File "C:\Python311\Lib\site-packages\PIL\Image.py", line 100, in
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 "", line 1, in
File "C:\Python311\Lib\site-packages\PIL\Image.py", line 100, in
from . import _imaging as core
ImportError: cannot import name '_imaging' from 'PIL' (C:\Python311\Lib\site-packages\PIL\__init__.py)
Подробнее здесь: https://stackoverflow.com/questions/790 ... debug-mode