使用PyDev在eclipse中启动python.exe会导致异常

时间:2015-07-20 17:23:40

标签: python eclipse jython-2.7

我正在使用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

到目前为止我尝试过的事情包括

  1. 打开calc.exe而不是python.exe。当我替换calc.exe时,我没有得到任何异常并且calc.exe打开了:

    subp = subprocess.Popen('calc.exe')

  2. 尝试通过从Windows命令提示符启动Jython来执行eclipse之外的原始代码。当我以这种方式执行代码时,打开了一个python进程并且没有错误。

  3. 更新:我已经意识到这个问题源于尝试使用“坏”PYTHONPATH启动python.exe。正如我上面所说,我在eclipse中使用Jython解释器运行代码,而eclipse正在管理PYTHONPATH。我只能通过将eclipse提供的PYTHONPATH复制到我的系统PYTHONPATH并启动python.exe来复制异常。所以现在我只需弄清楚PYTHONPATH应该是什么,以便运行打开python的Jython脚本。

1 个答案:

答案 0 :(得分:0)

最后,问题与PYTHONPATH有关。我不确定此路径中的哪个条目导致Python中断,但我最终更改了代码以使用-E选项和Python(忽略所有环境变量)并解决了问题。

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