Import .pyd Python ModuleC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Import .pyd Python Module

Сообщение Anonymous »

Я осознал проект C ++ и использовал Pydbind11. Все работают нормально на Linux (компиляция C ++ с CMake создает тестовые исполняемые файлы и модуль Python, который работает при его импорте, установка с помощью PIP установки также работает). В Windows я составляю проект с MSYS2 UCRT64 в подсказке MSYS2 UCRT64. Чтобы запустить файлы .exe, мне нужно запустить их в подсказке CMD вместо подсказки MSYS2 UCRT64, я не знаю почему. Компиляция производит файл .pyd в папке сборки, но я не приезжаю, чтобы импортировать его. Я создаю папку Symreg в Root Project и копирую файл .pyd с соответствующими файлами DLL. Я тоже пробую с __init __. Py файл со следующим контентом:

Код: Выделить всё

from .symreg import *
< /code>
Вот вывод в MSYS2 UCRT64Julien@DESKTOP-0IQSQEO UCRT64 ~/symreg_ws/SymReg
$ ls symreg/
__init__.py       libblas.dll         libglog-2.dll    libstdc++-6.dll             zlib1.dll
__pycache__       libceres-4.dll      libgvc-6.dll     libwinpthread-1.dll
libarmadillo.dll  libgcc_s_seh-1.dll  libopenblas.dll  symreg.cp312-win_amd64.pyd

Julien@DESKTOP-0IQSQEO UCRT64 ~/symreg_ws/SymReg
$ python
Python 3.12.11 (main, Jun  7 2025, 12:31:34)  [GCC UCRT 15.1.0 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import symreg
Traceback (most recent call last):
File "", line 1, in 
File "D:/Programmes/msys64/home/Julien/symreg_ws/SymReg/symreg/__init__.py", line 1, in 
from .symreg import *
ModuleNotFoundError: No module named 'symreg.symreg'
< /code>
Вот вывод в приглашении CMD: < /p>
D:\Programmes\msys64\home\Julien\symreg_ws\SymReg>D:\Programmes\msys64\ucrt64\bin\python.exe
Python 3.12.11 (main, Jun  7 2025, 12:31:34)  [GCC UCRT 15.1.0 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import symreg
Traceback (most recent call last):
File "", line 1, in 
File "D:\Programmes\msys64\home\Julien\symreg_ws\SymReg\symreg\__init__.py", line 1, in 
from .symreg import *
ModuleNotFoundError: No module named 'symreg.symreg'
Для получения информации проект находится здесь на GitHub с командами MSYS2 для компиляции: https://github.com/julien-livet/symreg.
написанного/> Я видел пакет Gmpy2 в пакете сайта и есть файл .pyd. gmpy2.cp312-mingw_x86_64_ucrt_gnu.pyd. Я попытался переименовать свой файл .pyd с помощью расширения CP312-Mingw_x86_64_ucrt_gnu.pyd, но я получил следующий вывод: < /p>
>>> import symreg
Traceback (most recent call last):
File "", line 1, in
File "D:/Programmes/msys64/home/Julien/symreg_ws/SymReg/symreg/__init__.py", line 1, in
from .symreg import *
ImportError: DLL load failed while importing symreg: Le module spécifié est introuvable.
< /code>
Есть ли у вас есть идеи правильно использовать этот файл .pyd? А потом, конечно, установите его, чтобы использовать его в сценариях Python?


Подробнее здесь: https://stackoverflow.com/questions/797 ... hon-module
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»