IntelliJ python插件,调试无法识别import __main __

时间:2016-02-10 08:08:54

标签: python debugging intellij-idea jython pydev

我是StackOverflow的新手,但我正在阅读它。这么棒的网站:D。

我试图自己找到解决方案,但我没有成功。我正在尝试使用IntelliJ Idea社区版15.1和最新的python插件5.0.2.143.121。只要我将脚本作为正常运行运行,一切都正常工作。但是,当我尝试调试我得到ImportError:

    Traceback (most recent call last):
  File "C:\Users\XXXXX\.IdeaIC15\config\plugins\python\helpers\pydev\pydevd.py", line 2403, in <module>
    globals = debugger.run(setup['file'], None, None, is_module)
  File "C:\Users\XXXXX\.IdeaIC15\config\plugins\python\helpers\pydev\pydevd.py", line 1794, in run
    launch(file, globals, locals)  # execute the script
  File "location to test script", line 2, in <module>
    from BASECLASS
  File "C:\location\__init__.py", line 7, in <module>
    context_mock.mock()
  File "C:\location\context_mock.py", line 26, in mock
    import __main__
ImportError: No module named __main__

BASECLASS是一个来自同一个包的类,但我混淆了它,抱歉公司规则。

通常,它使用的是Jython 2.7.0,它的工作方式如下: - 运行测试脚本时,在项目 init .py中进行“hack”:

try:
    from __main__ import c
except ImportError:
    import context_mock

    context_mock.mock()

其中c是java上下文。 模拟方法在context_mock.py文件中:

def mock():
    print 'Setting up local context...'
    import sys
    sys.path.append('')
    for p in gen_grep('.+', gen_find("*.jar", "C:\\location\\lib")):
        sys.path.append(p)

    print sys.path

    from xxxx import ConsoleResultsReporter, TestContext  # FileResultsReporter
    import __main__
    __main__.c = TestContext(ConsoleResultsReporter())
    __main__.c.put('__contextIsMocked__', True)
    print "Done"

当我运行调试器时,它会在mock()方法中导入 main 时停止。但是,当我运行正常的jython运行它没有。此外,当我使用pydev插件在Eclipse中进行调试时,它正常工作,因此我怀疑某些配置问题。 (也许我错了,但这是在两个IDE中使用的调试器相同吗?)

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

好的,我已经找到了解决方案。事实证明,只有在Python Debugger中使用uchecking自动链接才有帮助。现在就像一个魅力。