2014-04-04 45 views
1

導入錯誤:沒有模塊名爲「編碼」Python3.3 - 致命的Python錯誤:Py_Initialize:無法獲取本地編碼

雖然錯誤是自我解釋,我知道這個問題的原因。問題是,該平臺在他們的道路名稱中使用冒號,所以當我設置使用路徑:

Py_SetPath("the/path/with:colon/");

然後調用:

Py_Initialize();

它無法找到所需模塊進口。所以,我的問題是:有沒有任何方法解決方法,而不重命名路徑(我不控制)?我能以某種方式逃離冒號嗎?

謝謝!

回答

2

source code的長相,也沒有辦法做到這一點,我可以看到...

Py_SetPath簡單地清除了可能已經預先設定的任何路徑,然後將其重置爲您提供的字符串它沒有真正的處理。這就是Py_GetPath返回的結果,我想這就是它的全部。

一個建議,即可能工作是創建符號鏈接的目錄中的某個地方沒有的路徑名並使用它......

+0

感謝您的回答,你是否有:任何關於符號鏈接的例子?這似乎很有趣! –

+1

你只需要做一些像(IIRC):'ln -s「/ path/with:冒號/」「some/path/without/colon」',然後在C代碼中,你可以使用''some – mgilson

+1

'Py_Initialize'創建sys模塊並調用調用['makepathobject'](http://hg.python.org)的'PySys_SetPath(Py_GetPath())' /cpython/file/04f714765c13/Python/sysmodule.c#l1807)使用平臺'DELIM'。它不處理轉義分隔符。我不知道是否可以解決這個問題,因爲它正在引導解釋器。使用符號鏈接是一個好主意。 – eryksun

相關問題