我是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中使用的调试器相同吗?)
任何帮助都将不胜感激。
答案 0 :(得分:1)
好的,我已经找到了解决方案。事实证明,只有在Python Debugger中使用uchecking自动链接才有帮助。现在就像一个魅力。