【发布时间】:2016-02-10 08:08:53
【问题描述】:
我是 StackOverflow 的新手,但我读了很多。这么棒的网站:D。
我尝试自己寻找解决方案,但没有成功。我正在尝试将 IntelliJ Idea Community edition 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 上下文。 Mock 方法在 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 时,它不会。此外,当我在 Eclipse 中使用 pydev 插件进行调试时,它工作正常,因此我怀疑存在一些配置问题。 (也许我错了,但这是两个 IDE 中使用的同一个调试器吗?)
任何帮助将不胜感激。
【问题讨论】:
标签: python debugging intellij-idea jython pydev