交互式地调试我曾问一个问题,以前在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