Pydev 2.5和Python 3.2中存在一個問題,試圖將模塊內容「加載」到交互式控制檯中:當您按Ctrl + Alt + Enter時,Pydev會啓動execfile(文件名)而不是exec(compile(open(filename) .read(),filename,'exec'),globals,locals) - 後者是execfile()在Python 3+中的替換... ...如何使用exec()在Pydev上替換execfile()Ctrl + Alt + Enter鍵綁定?
那麼,如何改變這種行爲呢?我想創建一個新的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 + ...
我真的不知道,如果我理解,所以我說,導致這一問題的具體步驟,現在我想弄清楚我應該如何使用這個重新定義你發佈的修復這個惱人的小錯誤(如果確實是一個錯誤)... – Rok 2012-04-14 22:25:23
好吧,只是看到那裏的錯誤......它沒有得到正確的全局()。將修復答案以反映這一點。 – 2012-04-16 00:02:55
它的工作原理! :) 路徑中只有一個小錯誤 - 它應該是: plugins \ org.python.pydev_XXX \ PySrc \ _pydev_execfile.py (最後一個反斜槓丟失) – Rok 2012-04-16 14:48:09