在C++中嵌入Python时,没有一个名为pyExpAT的模块错误

2024-09-28 23:41:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我将Python 3.87动态链接到VisualStudioC++控制台应用程序EM>Testpython .EXE ,用以下代码尝试 plistLib < EEM>库(这是我实际应用中必须的):

#include <iostream>

#include "Python.h"

int main()
{
    std::string name;
    std::cout << "Write name:   ";
    std::cin >> name;

    std::cout << "name: " << name << "\n";

    Py_Initialize();

    PyObject* moduleMainString = PyUnicode_FromString("__main__");
    PyObject* moduleMain = PyImport_Import(moduleMainString);

    PyRun_SimpleString(
        "import plistlib\n"\
        "def testDict(a):\n"
        "   pl = dict(aString = a)\n"\
    );

    PyObject* func = PyObject_GetAttrString(moduleMain, "testDict");
    PyObject* args = PyTuple_Pack(1, PyUnicode_FromString(name.c_str()));
    PyObject* result = PyObject_CallObject(func, args);

    Py_Finalize();

    system("pause");
}

在我的开发人员计算机(我安装了Python)中,可执行文件运行良好。当我在未安装Python的其他计算机上运行它时,应用程序显示以下错误:

Traceback (most recent call last):
   File "<string>", line 1, in <module>
   File "<frozen zipimport>", line 259, in load_module
   File "plistlib.py", line 65, in <module>
   File "<frozen zipimport>", line 259, in load_module
   File "xml\parser\expat.py", line 4, in <module>
ModuleNotFoundError: No module named 'pyexpat'

error picture

当我在另一台计算机上运行它时,我负责将其包括在同一目录中:

TestPython.exe捆绑在一起的Python文件与开发人员计算机的Python版本正确匹配(这通常是相关“pyexpat”问题的解决方案,但不适用于此)


Tags: nameinpy应用程序stringincludemain计算机