2016-01-27 29 views
1

我有一個python 3腳本,我從另一個Python 2.7.x腳本使用subprocess.popen調用。Eclipse - pydev - 致命的Python錯誤:Py_Initialize:無法獲取區域編碼

myproc = subprocess.Popen(
     "/path/to/my/python/3/script", 
      stdout=subprocess.PIPE, 
      stderr=subprocess.PIPE, 
      cwd=mypwd, 
      shell=True) 

當我使用Eclipse調試這個腳本,並打印出標準錯誤我看到了以下問題:

Fatal Python error: Py_Initialize: Unable to get the locale encoding

,當我在Eclipse外部的腳本執行相同的代碼的問題是沒見過。

任何幫助解決這個將不勝感激!

+0

剛剛添加了一個可能解決此問題的響應:https://stackoverflow.com/a/45801382/110451 –

回答

1

與subprocess.check_call

同樣的問題我已經解決了我的傳球ENV

subprocess.check_call(cmd,env={'PATH': '/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games', 
             'LANG': 'it_IT.UTF-8', 
             }) 

我想改變的PyDev環境做了一些魔法。 不確定PATH和LANG都需要。

+0

測試並確認這是一個PyDev問題。我從終端開始寫劇本,完全沒有問題。然而,不要做你在做什麼,我會建議嘗試在PyDev(通用設置或特定項目)中查找屬性,而不是傳遞固定值。解決方案的問題是,當路徑和/或「LANG」具有不同的值(雖然對於其他操作系統是有效的),您的解決方案將失敗。 – rbaleksandar

相關問題