我有一个脚本对蛋白质进行计算。完成后,一个方法导入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会话来显示结果?
发布于 2012-08-08 08:26:53
我不是PyMOL方面的专家(从未编写过脚本),但我看到了两种可能的方法:
os.system("ps ux | grep -i pymol"))第一条路更好,第二条是肮脏的黑客。
发布于 2013-04-04 02:35:57
我通常只是做这样的事情:
try:
import pymol
pymol_imported = True
except:
pymol_imported = False然后
if pymol_imported:
display_results(...)我不知道这是否是Python的“最佳实践”,但是PyMol脚本在大多数情况下通常都是快速的、一次性的。
https://stackoverflow.com/questions/11858681
复制相似问题