我正在使用PyDev插件和Jython2.7.0解释器。在我的代码中,我尝试执行以下代码:
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
到目前为止我尝试过的事情包括
打开calc.exe而不是python.exe。当我替换calc.exe时,我没有得到任何异常并且calc.exe打开了:
subp = subprocess.Popen('calc.exe')
尝试通过从Windows命令提示符启动Jython来执行eclipse之外的原始代码。当我以这种方式执行代码时,打开了一个python进程并且没有错误。
更新:我已经意识到这个问题源于尝试使用“坏”PYTHONPATH启动python.exe。正如我上面所说,我在eclipse中使用Jython解释器运行代码,而eclipse正在管理PYTHONPATH。我只能通过将eclipse提供的PYTHONPATH复制到我的系统PYTHONPATH并启动python.exe来复制异常。所以现在我只需弄清楚PYTHONPATH应该是什么,以便运行打开python的Jython脚本。
答案 0 :(得分:0)
最后,问题与PYTHONPATH有关。我不确定此路径中的哪个条目导致Python中断,但我最终更改了代码以使用-E选项和Python(忽略所有环境变量)并解决了问题。
import subprocess
subp = subprocess.Popen('C:\Python27\python.exe -E')