只要导入lxml模块,PyImport_ImportModule就失败返回NULL,这是为什么?

发布于 2022-09-04 03:12:43 字数 1303 浏览 28 评论 0

我在python源文件中写了一个测试函数,想在c++中调用,但是在调用的过程中遇到了一个问题:只要我导入了lxml模块,PyImport_ImportModule函数失败返回NULL,去掉lxml相关就可以正常调用返回。
python代码如下
Test.py

    import os
    import sys
    import requests
    from lxml import html     #只要加这个就错误,换成import lxml也一样
    
    def foo():
        host = "http://www.baidu.com"
        s = requests.session()
        res = s.get(host)
        return res

c++代码如下

    Py_Initialize();
    PyRun_SimpleString("import sys");
    PyRun_SimpleString("sys.path.append('./')");
    PyObject* pModule = PyImport_ImportModule("Test");
    if (pModule == NULL || PyErr_Occurred()) 
    {
       PyErr_Print();
    }
    PyObject* pDict = PyModule_GetDict(pModule);
    PyObject *pFunHi = PyDict_GetItemString(pDict, "foo");
    PyObject *ret = PyObject_CallFunction(pFunHi,NULL);
    Py_DECREF(pFunHi);
    Py_Finalize();

错误消息:

Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\test\Test\Debug\Test.py", line 4, in <module>
from lxml import html
File "E:\python27\lib\site-packages\lxml\html\__init__.py", line 54, in <module>
from .. import etree
ImportError: DLL load failed: Unable to find the specified module。

请问怎么正确用lxml模块?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

与君绝 2022-09-11 03:12:44

是库的原因,另外下了一个库就好了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文