交互式地調試我曾問一個問題,以前在Python中的相對路徑在SO問題:How can I access relative paths in Python 2.7 when imported by different modules無法與Python 2.7
所提供的答案在我所有的腳本和功能的工作很大。但是,當試圖在IDLE(Python 2.7)中調試文件時,它會產生運行時錯誤。
任何人都可以指向我使用__file__
表示法的文檔嗎?另外我想了解爲什麼IDLE在運行示例代碼時生成錯誤,但是從命令行運行相同的文件或雙擊它(對於Windows用戶)不會。
任何幫助將不勝感激!
請注意,我在Windows XP上使用virtualenv(在這些測試期間未激活)運行Python 2.7。
示例代碼
import os
import sys
curdir = os.path.dirname(__file__)
sys.path.append(curdir + '/..')
錯誤,如果你在解釋器寫這
Traceback (most recent call last):
File "C:\MyFile.py", line 3, in `<module>`
curdir = os.path.dirname(`__file__`)
NameError: name '`__file__`' is not defined
要正確比較IDLE如何運行代碼(通過運行Python)以及Python如何自行運行代碼,必須爲每個代碼運行相同的運行模式。 IDLE Shell與交互式解釋器進行比較,從命令行開始,使用'python'。從IDLE編輯器窗口運行,與使用'python -i -m文件從命令行運行代碼進行比較。存在一些故意的差異,一些是固定的,也許一些應該修正但尚未修復,有些是不可避免的。 – 2016-08-28 01:15:19