我有一个脚本可以对蛋白质进行一些计算。完成后,方法将导入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会话来显示结果?
答案 0 :(得分:2)
我不是PyMOL的专家(还没有编写脚本),但我看到了两种可能的方式:
os.system("ps ux |
grep -i pymol")
)第一种方式更好,第二种方式是肮脏的黑客。
答案 1 :(得分:0)
我通常只做以下事情:
try:
import pymol
pymol_imported = True
except:
pymol_imported = False
然后
if pymol_imported:
display_results(...)
我不知道这是Python"最佳实践",但PyMol脚本在大多数情况下通常只是快速,一次性的事情,无论如何。