2010-04-09 104 views
1

Idlestartup类似于pythonstartup变量,但是用于IDLE而不是命令行。 但它似乎不能正常工作。我在Windows上使用python 2.6.5。在python 2.6.5上使用idlestartup的正确方法是什么?

我有一个分配给它下面的脚本:

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中。

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

回答

4

sys.stdout可能不是最终状态在idlestartup的越来越加载时间 - 因此它很可能是一个print它试图去‘原始’的标准输出,然后马上标准输出被重定向到空闲的命令窗口,所以print的效果从未见过。换句话说,我认为没有错误 - 如果idlestartup可以保证向用户发送一条重要消息,如果必须保证该消息的传送,那么这个错误并不明显(例如,您的示例等消息没有什么大不了,但如果你确实有重要的,我会考虑Tk以确保的方式提供他们的方式)。

编辑:为确保某些名字被添加到主命名空间,后者的命名__main__(既没有空闲),因此添加到代码的一些语句,如

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

& c应该工作。

+0

感谢您的解释。我不关心这个消息,但是我希望pprint和sys(以及其他可能包含的模块)始终可用。有关如何解决此问题的任何想法?我也尝试了customize.py,但它的工作方式相同。 – duduklein 2010-04-12 11:08:06

+0

@user,好的,编辑我的答案来澄清那部分。 – 2010-04-12 14:28:55

+0

我在我的文件末尾添加了您建议的行,但没有奏效。任何其他想法?谢谢 – duduklein 2010-04-15 13:55:58

相关问题