我正在尝试构建一个使用嵌入式 python 3.2 解释器的简单 C++ 测试项目。该项目构建良好,但 Py_Initialize 引发 fatal error :
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 文件运行没有任何问题。
有人可以解释一下这个问题以及如何解决它吗?我自己的 google-fu 失败了。
编辑 1
查看 python 源代码后,我发现,正如错误所述,没有注册编解码器搜索函数。 codec_register
和 PyCodec_Register
都是应有的样子。只是代码中没有任何地方调用这些函数。
我真的不知道这意味着什么,因为我仍然不知道应该在何时何地调用这些函数。我的其他 python 构建 (3.1.3) 的源代码中完全缺少引发错误的代码。
编辑2
在下面回答我自己的问题。
我是一名优秀的程序员,十分优秀!