在Python&中调用命令行工具Ubuntu的

时间:2012-07-26 17:51:56

标签: python ubuntu command-line bioinformatics

我想在Ubuntu软件中心带一些为Windows编写的GUI程序。我正在使用几个外部命令行工具,我用

调用
os.system(cmd)

不,我想知道如何在Linux(Ubuntu)下执行此操作。我必须使用哪个相应的文件?在Windows中,该工具只能在我的程序的文件夹中访问但未安装,它是否会以相同的方式用于Linux?

我需要的工具都是生物信息学,primer3blastbowtie

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

在Linux上,您通常打包应用程序,以便可以使用系统包管理器安装它们(例如,基于Debian的发行版的.deb文件,包括Ubuntu和RedHat的.rpm。您希望这样做的原因之一(依赖于许多)是依赖关系管理 - 您可以告诉程序包中的程序包管理器它所依赖的其他程序包,以便它们可以安装(如果它们不是这样)。您可以使用 setuptools 执行此操作,此处有许多资源。在这种情况下,您可以期望在系统范围内安装命令行工具,并且可以从应用程序中调用它们。

如果无法做到这一点,您甚至可以包含所需工具的源代码,并为用户提供如何编译它们的说明(如果需要,可以在应用程序目录中)。对于大多数现代发行版来说,这是一个相当轻松的过程,但不是最佳实践。


另一个注意事项:os.system正在阻塞,它会生成一个新进程并等待它退出。您无法轻松获取stdout或stderr输出或与之交互。您应该查看subprocess模块(它是Python标准库的一部分)或envoy(第三方模块),它为子进程模块提供了一个简化的(可以说是)更强大的接口

如果你想"自动化"命令行工具,pexpect让您的生活更轻松。