我试图把一个简单的C++测试项目,使用python 3.2。该项目的基础不错,但Py_Initialize提出了一个致命的错误: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文件运行没有任何问题。
有人可以解释这个问题以及如何解决它吗?我自己的google-fu失败了。
编辑1
通过Python源代码,我发现,因为错误说,没有编解码器的搜索功能已经注册后去。他们应该是codec_register
和PyCodec_Register
。只是代码中没有任何这些函数被调用。
我真的不知道这意味着什么,因为我仍然不知道何时以及从何处调用这些函数。引发错误的代码完全从我的其他python版本(3.1.3)的源代码中丢失。
EDIT 2
下面回答我自己的问题。
你在这里谈论什么搜索路径? – 2011-07-27 21:25:46
python寻找模块的路径。这是一段时间以前,所以我不记得确切地在哪里或如何。 – Anton 2011-08-02 12:40:14
您能否展示您在解决方案中修改过的内容? – 2016-02-15 00:08:09