确定环境python运行

时间:2013-04-25 16:27:39

标签: python windows

我正在编写一个我希望以不同方式运行的python程序,无论它是在windows命令提示符还是windows powershell上运行。我想知道是否有办法确定python在程序中运行的环境。

提前致谢!

3 个答案:

答案 0 :(得分:1)

首先使用this code来获取您的父进程ID。然后致电:

if ("powershell.exe" in os.popen("tasklist /fi \"PID eq %d\"" % parentPID).read()) {
    # We're a child of powershell!!
    ...
}

虽然说实话,如果你被PowerShell运行,那么执行会有点奇怪。你应该认真考虑为什么要这样做,并评估你是否做了不必要的事情。

如果你想要平台(这在你的上一个声明中有些暗示),平台模块通常会告诉你你想知道什么。

>> import platform
>> platform.architechture()
('64bit', 'WindowsPE')

请注意,从docs建议您使用is_64bits = sys.maxsize > 2**32用于Mac来确定64位与32位。

答案 1 :(得分:0)

您可以尝试一种解决方案。您可以从Python代码中将一些powershell命令称为Write-Host(cmd中的echo equivalent)并获取调用结果。如果失败则不是PowerShell。 (我现在无法测试。)

答案 2 :(得分:0)

在调用脚本时,你应该认真地添加另一个参数。

当在脚本内部时,sys.args变量会为您提供传递给脚本的所有参数(首先始终是脚本的名称)。

还有图书馆optparse可以帮助你完成工作......

你所做的不是一个好习惯:P恰恰相反:)不管怎么说,不要太用力,我的意思是我不知道你要做什么,但听起来像是一个危险的想法。