我正在尝试整合一个使用嵌入式 python 3.2解释器的简单 c + + 测试项目。该项目构建良好,但是 Py _ Initialize 引发了一个致命错误:
Fatal Python error: Py_Initialize: unable to load the file system codec
LookupError: no codec search functions registered: can't find encoding
最小代码:
#include <Python.h>
int main (int, char**)
{
Py_Initialize ();
Py_Finalize ();
return 0;
}
操作系统是32位的 Vista。
使用的 python 版本是一个 python 3.2调试版本,使用 VC + + 10从源代码构建。
来自同一个构建的 python _ d.exe 文件运行时没有任何问题。
有人能解释一下这个问题以及如何解决它吗? 我自己的谷歌搜索失败了。
编辑1
在浏览了 python 源代码之后,我发现,正如错误所说,没有注册任何 codec 搜索函数。codec_register和 PyCodec_Register都是它们应该的样子。只是这些函数在代码中都没有被调用。
我真的不知道这意味着什么,因为我仍然不知道这些函数应该在何时何地被调用。引发错误的代码在我的其他 Python 构建(3.1.3)的源代码中完全缺失。
编辑2
回答了我自己的问题。