从MSVC调试项目导入pyd

在调用外部Python文件的MSVC项目中,出现此错误:

Traceback (most recent call last):
  File "C:/PyTmp\P1.py",line 1,in <module>
    import pycurl
ImportError: DLL load failed while importing pycurl: The specified module could not be found.

仅在调试模式下存在错误 在发布版本中编译项目并执行它,没有发现错误

其他Python包(例如pyodbc,...)也是如此

我在网站包装中找到了相关文件:pycurl.cp38-win32.pyd,并将其复制到其他文件中: pycurl_d.pyd,pycurl.cp38-win32_d.pyd,pycurl_d.cp38-win32.pyd

但是我总是有相同的错误

该文件可直接从Python正确执行,而不是在调试模式下从MSVC代码正确执行

Python代码P1.py

import pycurl
def my_function(x,y):
   return y * x
print(my_function(3,4))

C ++代码

PyObject* pName1,* pModule1,* pDict1,* pFunc1;   
Py_Initialize();

PyObject* sys = PyImport_ImportModule("sys");
PyObject* sys_path = PyObject_GetattrString(sys,"path");
PyObject* folder_path = PyUnicode_FromString("C:/PyTmp");
PyList_Append(sys_path,folder_path);
pModule1 = PyImport_ImportModule("P1");
if (pModule1 == nullptr) {
    PyErr_Print();
}
iCMS 回答:从MSVC调试项目导入pyd

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2042469.html

大家都在问