我有一个脚本,可以对蛋白质进行一些计算。完成后,方法将导入pymol模块,并使用pymol.cmd API在PyMOL会话中显示结果。该过程类似于以下内容:

def display_results(results, protein_fn):
    import pymol
    pymol.cmd.load(protein_fn)
    pymol.cmd.alter(...)
    ...

protein_fn = "1abc.ent"
results = analyze_protein(protein_fn)
display_results(results, protein_fn)


但是,我的脚本并不一定需要在PyMOL中显示结果,我希望仅在安装并运行PyMOL时才能执行此操作。

检查是否已安装PyMOL很容易(我只能按try: import pymol),但是有没有办法检查是否有活动的PyMOL会话显示结果?

最佳答案

我不是PyMOL的专家(从来没有编写过脚本),但是我看到了两种可能的方法:


做一些需要打开PyMOL会话的琐碎事情
例外情况
查看进程名称(类似于os.system("ps ux |grep -i pymol")


第一种方法更好,第二种是肮脏的破解。

关于python - 仅在PyMOL运行时调用函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11858681/

10-12 04:47