在python 2.6.5上使用idlestartup的正确方法是什么?

时间:2010-04-09 14:04:07

标签: python startup

Idlestartup类似于pythonstartup变量,但对于IDLE,而不是命令行。 但它似乎无法正常工作。我在Windows上使用python 2.6.5。

我分配了以下脚本:

from pprint import pprint
import sys
newPath = 'C:\\Python26\test')
sys.path.append(newPath)
print "initial config loaded"

将两个变量Idlestartup和pythonstartup分配给同一个文件(上面的脚本)。 运行IDLE时,pprint和sys不可用,不会打印最终消息,但是newPath已添加到sys.path中。 运行命令行,pprint和sys可用,打印最终消息并将newPath添加到sys.path。

这是一个错误吗?难道我做错了什么? 感谢

1 个答案:

答案 0 :(得分:4)

sys.stdout被加载时,

idlestartup可能还没有处于最终状态 - 所以print很可能会尝试转到“原始”标准-output,然后立即将标准输出重定向到idle的命令窗口,因此永远不会看到print的效果。换句话说,没有错误,我认为 - 如果必须保证传递该消息,那么idlestartup如何保证向用户发送重要消息并不明显(例如你的例子之类的消息是否定的)这很重要,但是如果你确实有重要的,我会考虑以Tk方式以有保证的方式交付它们。)

编辑:至于确保将某些名称添加到主命名空间,后者的名称为__main__(有和没有空闲),因此在代码中添加一些语句比如

sys.modules['__main__'].pprint = pprint

& c应该有效。