我正在使用带有 Jython2.7.0 解释器的 PyDev 插件。在我的代码中,我尝试执行以下代码:
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 脚本。