首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只在PyMOL运行时调用函数

只在PyMOL运行时调用函数
EN

Stack Overflow用户
提问于 2012-08-08 06:16:30
回答 2查看 464关注 0票数 2

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

代码语言:javascript
复制
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会话来显示结果?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-08 08:26:53

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

  1. 做一些需要打开PyMOL会话并捕获异常的琐碎事情
  2. 查看进程名(类似于os.system("ps ux | grep -i pymol"))

第一条路更好,第二条是肮脏的黑客。

票数 4
EN

Stack Overflow用户

发布于 2013-04-04 02:35:57

我通常只是做这样的事情:

代码语言:javascript
复制
try:
    import pymol
    pymol_imported = True
except:
    pymol_imported = False

然后

代码语言:javascript
复制
if pymol_imported:
    display_results(...)

我不知道这是否是Python的“最佳实践”,但是PyMol脚本在大多数情况下通常都是快速的、一次性的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11858681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档