我試圖把一個簡單的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