2015-07-20 70 views
0

我正在使用帶有Jython2.7.0解釋器的PyDev插件。在我的代碼我試圖執行以下代碼:在使用PyDev的eclipse中啓動python.exe會導致異常

import subprocess 
subp = subprocess.Popen('C:\Python27\python.exe') 

Eclipse控制檯顯示以下錯誤:

Traceback (most recent call last): 
    File "C:\jython2.7.0\Lib\site.py", line 68, in <module> 
    import os 
    File "C:\jython2.7.0\Lib\os.py", line 432, in <module> 
    import UserDict 
    File "C:\jython2.7.0\Lib\UserDict.py", line 83, in <module> 
    import _abcoll 
    File "C:\jython2.7.0\Lib\_abcoll.py", line 11, in <module> 
    from abc import ABCMeta, abstractmethod 
    File "C:\jython2.7.0\Lib\abc.py", line 8, in <module> 
    from _weakrefset import WeakSet 
    File "C:\jython2.7.0\Lib\_weakrefset.py", line 5, in <module> 
    from java.util import WeakHashMap 
ImportError: No module named java.util 

事情我已經試過到目前爲止,包括

  1. 打開鈣。 exe而不是python.exe。當我取代CALC.EXE我沒有得到任何異常和CALC.EXE開闢了:

    SUBP = subprocess.Popen(「CALC.EXE」)

  2. 試圖通過啓動執行蝕以外的原代碼從Windows命令提示符下運行Jython。當我這樣執行代碼時,打開了一個python進程,並且沒有錯誤。

更新:我已經意識到這個問題源於嘗試啓動python.exe與「壞」PYTHONPATH。正如我上面所說的,我使用eclipse中的Jython解釋器來運行代碼,而eclipse正在管理PYTHONPATH。我能夠通過複製eclipse提供的PYTHONPATH到我的系統PYTHONPATH並啓動python.exe來複制異常。所以現在我只需要弄清楚爲了運行一個打開python的Jython腳本,PYTHONPATH應該是什麼。

+0

如果您嘗試從Popen打開jython.exe,那麼該怎麼辦? – csunday95

+0

我執行 進口子 SUBP = subprocess.Popen( 'C:\\ \\ jython2.7.0斌\\ jython.exe') subp.kill() 打印 「完成」 這個執行罰款。 –

回答

0

最後,問題與PYTHONPATH有關。我不確定此路徑中的哪個條目導致Python中斷,但我最終更改了代碼以使用Python的-E選項(忽略所有環境變量)並解決了問題。

import subprocess 
subp = subprocess.Popen('C:\Python27\python.exe -E') 
相關問題