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。
这是一个错误吗?难道我做错了什么? 感谢
答案 0 :(得分:4)
sys.stdout
被加载时, idlestartup
可能还没有处于最终状态 - 所以print
很可能会尝试转到“原始”标准-output,然后立即将标准输出重定向到idle的命令窗口,因此永远不会看到print
的效果。换句话说,没有错误,我认为 - 如果必须保证传递该消息,那么idlestartup
如何保证向用户发送重要消息并不明显(例如你的例子之类的消息是否定的)这很重要,但是如果你确实有重要的,我会考虑以Tk
方式以有保证的方式交付它们。)
编辑:至于确保将某些名称添加到主命名空间,后者的名称为__main__
(有和没有空闲),因此在代码中添加一些语句比如
sys.modules['__main__'].pprint = pprint
& c应该有效。