gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 19:04:11 27 4
gpt4 key购买 nike

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

os.system(cmd)

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

我需要的工具都是生物信息学的, primer3 , blast , bowtie .

非常感谢任何帮助!

最佳答案

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

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

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

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

关于python - 在 Python 和 Ubuntu 中调用命令行工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11675111/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com