如何以编程方式检查远程Linux机器上是否安装了python包?

时间:2017-05-26 00:44:20

标签: python linux

我有一堆Linux构建从属服务器,它们使用Python为每个构建运行自动化测试。每个python环境都需要安装一个特定的模块列表(一些模块也需要特定的版本)。我正在尝试编写一个python脚本,它将转到每台机器并检查是否安装了python包列表以及检查多个软件包的版本。我有这个工作在本地机器上,但寻找有关检查远程机器的最佳方法的建议。

作为参考,在本地机器上我正在试用/除了检查模块是否已安装

scanP1("rb_correctP1["+i+"]")

这是检查特定版本

pkg_resources.get_distribution(module)

有关为远程系统执行此操作的最佳方法的任何建议吗?

4 个答案:

答案 0 :(得分:0)

您可以通过ssh运行任何shell命令:

$ ssh your_login@your_server which python
/usr/bin/python

这应足以检查远程服务器上安装的内容。

答案 1 :(得分:0)

进入机器后,pip freezegrep应该可以查找模块是否已安装。

进一步阅读:http://blog.revathskumar.com/2011/10/python-list-all-packages-installed.html

对于SSHing,子进程库应该允许您运行这些命令。

答案 2 :(得分:0)

使用paramiko我创建了一个SSH连接 执行pip冻结 在返回的列表中搜索了我需要验证的包

答案 3 :(得分:0)

如果您使用compare-requirements安装软件包,则可能需要查看{{3}}软件包。

至于能够远程运行它,您应该能够通过SSH实现这一点,如AetherUnbound建议的那样