我将Python 3.87动态链接到VisualStudioC++控制台应用程序EM>Testpython .EXE
#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'
当我在另一台计算机上运行它时,我负责将其包括在同一目录中:
与TestPython.exe捆绑在一起的Python文件与开发人员计算机的Python版本正确匹配(这通常是相关“pyexpat”问题的解决方案,但不适用于此)
解决方案:将Python 3.8.7 Windows可嵌入包中的所有文件放在同一目录中(而不仅仅是.dll和.zip)。尤其是缺少文件pyexpat.pyd
相关问题 更多 >
编程相关推荐