【发布时间】:2011-04-03 04:02:05
【问题描述】:
我之前在 SO 问题中问过一个关于 python 中的相对路径的问题:How can I access relative paths in Python 2.7 when imported by different modules
提供的答案在我的所有脚本和函数中都非常有效。但是,当尝试在 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 文件从命令行运行代码相比。有一些差异是故意的,一些已经修复,一些应该修复但尚未修复,还有一些是不可避免的。
标签: python python-idle