有没有一种方法可以判断何时使用PYTHONSTARTUP加载python文件,何时作为脚本运行?

有没有一种方法可以判断何时使用PYTHONSTARTUP加载python文件,何时作为脚本运行?,python,Python,全部,, 我最近发现了PYTHONSTARTUP环境变量,并期待着设置几个实用程序函数来自动加载到我的解释器中。但是,我希望能够使用相同的脚本来设置环境变量本身 我的问题是确定文件何时作为脚本运行。我的想法是使用if\uuuuu name\uuuu==“\uuuu main\uuuu”:技巧来确定文件何时作为脚本运行,但测试表明,当通过PYTHONSTARTUP加载文件时,名称显示为“\uuu main\uuuuu” 是否有人知道一种方法来识别文件何时作为脚本运行,何时通过PYTHONSTART

全部,, 我最近发现了PYTHONSTARTUP环境变量,并期待着设置几个实用程序函数来自动加载到我的解释器中。但是,我希望能够使用相同的脚本来设置环境变量本身

我的问题是确定文件何时作为脚本运行。我的想法是使用
if\uuuuu name\uuuu==“\uuuu main\uuuu”:
技巧来确定文件何时作为脚本运行,但测试表明,当通过PYTHONSTARTUP加载文件时,名称显示为
“\uuu main\uuuuu”


是否有人知道一种方法来识别文件何时作为脚本运行,何时通过PYTHONSTARTUP加载?

您可以检查PYTHONSTARTUP环境变量是否设置为当前文件名(通过
\uuu file\uu


对我来说效果很好。

您可以检查PYTHONSTARTUP环境变量是否设置为当前文件名(通过
\uuuuu file\uuu


对我来说效果很好。

找到了更好的解决方案:

if sys.argv[0] == __file__:
    print "It works!"

基本上,因为文件名始终是argv[]中的第一个参数,所以我们只需检查
argv[0]
是否与
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu文件相同,这仅在文件作为脚本打开时才是真的

找到了更好的解决方案:

if sys.argv[0] == __file__:
    print "It works!"

基本上,因为文件名始终是argv[]中的第一个参数,所以我们只需检查
argv[0]
是否与
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu文件相同,这仅在文件作为脚本打开时才是真的

PYTHONSTARTUP
只修改
sys.path
变量,它不修改加载的文件。@伊斯梅尔:不,它实际上运行指定的文件。对,我想改为PYTHONPATH,oooops:-/
PYTHONSTARTUP
只修改
sys.path
变量,它不修改加载的文件。@伊斯梅尔:不,它实际上运行指定的文件。对,我考虑的是PYTHONPATH,oooops:-/谢谢,这适合我的需要。我想我只是在找更干净的东西。即使作为脚本运行,只要PYTHONSTARTUP环境变量指向当前文件,该语句也是正确的。啊,你是对的,它会,所以它实际上不会检查它是否在启动下运行,它只检查它是否已经设置好。谢谢,这正是我所需要的。我想我只是在找更干净的东西。即使作为脚本运行,只要PYTHONSTARTUP环境变量指向当前文件,该语句也是正确的。啊,你是对的,它会,所以它实际上不会检查它是否在启动时运行,它只检查它是否已经设置好。