首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python和Ubuntu中调用命令行工具

在Python和Ubuntu中调用命令行工具
EN

Stack Overflow用户
提问于 2012-07-27 01:51:56
回答 1查看 626关注 0票数 0

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

代码语言:javascript
复制
os.system(cmd)

不,我想知道在Linux (Ubuntu)下如何做到这一点。我必须使用哪个相应的文件?在Windows中,该工具只能在我的程序的文件夹中访问,但没有安装,它是否会以同样的方式在Linux上工作?

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

任何帮助都是非常感谢的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-27 02:26:11

在Linux上,您通常将应用程序打包,以便可以使用系统包管理器进行安装(例如,用于基于Debian的发行版的.deb文件,包括用于RedHat的Ubuntu和.rpm )。你想这么做的一个原因是依赖管理--你可以在你的包中告诉包管理器它依赖于哪些其他包,这样它们就可以在它们不依赖的时候被安装。在这种情况下,命令行工具可以在系统范围内安装,并且可以从应用程序中调用它们。

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

另一个注意事项:os.system正在阻塞,它会产生一个新进程并等待它退出。您不能轻松地获得stdout或stderr输出,也不能与其交互。您应该研究一下subprocess模块(它是Python标准库的一部分)或envoy (第三方模块),它为子流程模块提供了一个简化的、(可以说是)更强大的接口。

如果您想“自动化”命令行工具,pexpect会让您的工作更轻松。

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

https://stackoverflow.com/questions/11675111

复制
相关文章

相似问题

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