【问题标题】:Is there a way to check what you are running a python program in?有没有办法检查你正在运行什么 python 程序?
【发布时间】:2021-01-10 16:13:03
【问题描述】:

我想为终端和空闲创建一个脚本,但我不知道如何。使用if 'idlelib' in sys.modules: 可以查看它是否在IDLE 中运行,但是有没有办法通过替换'idlelib' 来使用相同的代码来查找它是否在终端中?

【问题讨论】:

  • “仅用于终端和空闲”是什么意思?什么是不是终端或IDLE?
  • @mkrieger1 很确定,但我想确定一下,因为我计划将它变成带有参数的终端可执行文件,但如果它处于空闲状态,仍然使用输入。
  • 您是在问如何确定 Python 文件是作为脚本运行还是作为模块导入?
  • @mkrieger1 不,我想获取运行脚本的进程的名称,然后检查它是否是我想要的。
  • 如果不是你想要的,你打算做什么?或者如果你根本不做这个检查会有什么问题?

标签: python terminal python-idle sys


【解决方案1】:

您可以尝试使用psutilos

import psutil
import os
if psutil.Process(os.getpid()).parent().name() in ["cmd.exe","bash"]:
    print("in cmd")

使用 idle 它返回 'pythonw.exe' 这表明它有效。

【讨论】:

  • 因为我使用的是终端,而不是 windows 命令行,我会将“cmd.exe”更改为什么?
  • 在 Centos 上运行,你会得到 bash,但你也可以尝试使用 print(psutil.Process(os.getpid()).parent().name()) 打印来获取终端的情况
  • ModuleNotFoundError: No module named 'psutil' 我必须先下载吗?
  • 我正在运行 Python 3.8.5 并且 psutil 存在。
  • @ncmathsadist 我现在正在尝试使用 pip3 下载它,我想它只是必须下载。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-02
  • 2021-04-01
  • 2016-05-09
  • 2021-12-13
  • 2016-11-15
相关资源
最近更新 更多