Pydev 2.5 和 Python 3.2 中存在一个问题,试图将模块内容“加载到”交互式控制台中:当您按下 Ctrl+Alt+Enter 时,Pydev 会触发 execfile(filename) 而不是 exec(compile(open(filename).read (), filename, 'exec'), globals, locals) - 后者是 Python 3+ 中 execfile() 的替代品...
那么,如何改变这种行为呢?
ETA:更具体一点,事情是这样的:我创建了一个新的 PyDev 模块,比如“test.py”,编写一些简单的函数 def f(n): print(n),点击 Ctrl+Alt+Enter,然后我选择“当前活动编辑器的控制台”和 Python 3.2 解释器,交互式控制台唤醒,然后我得到这个:
>>> import sys; print('%s %s' % (sys.executable or sys.platform, sys.version))
PyDev console: using default backend (IPython not available).
C:\Program Files (x86)\Python\3.2\python.exe 3.2.3 (default, Apr 11 2012, 07:15:24) [MSC v.1500 32 bit (Intel)]
>>> execfile('C:\\testy.py')
>>> f(1)
Traceback (most recent call last):
File "<console>", line 1, in <module>
NameError: name 'f' is not defined
如您所见,它仍然使用 execfile() 而不是 exec(),它在 Python 3+ 中取代了它...