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

如何以编程方式检查python包是否安装在远程Linux机器上?,python,linux,Python,Linux,我有一堆Linux构建从机,它们使用Python为每个构建运行自动测试。每个python环境都需要安装特定的模块列表(有些模块还需要特定的版本)。我正在尝试编写一个python脚本,它将进入每台机器,检查是否安装了python包列表,并检查几个包的版本。我有这个工作为本地机器,但寻找最好的方法来检查远程机器的建议 作为参考,在本地计算机上,我正在使用它来检查模块是否已安装 pkg_resources.get_distribution(module) 这是为了检查特定的版本 pkg_resour

我有一堆Linux构建从机,它们使用Python为每个构建运行自动测试。每个python环境都需要安装特定的模块列表(有些模块还需要特定的版本)。我正在尝试编写一个python脚本,它将进入每台机器,检查是否安装了python包列表,并检查几个包的版本。我有这个工作为本地机器,但寻找最好的方法来检查远程机器的建议

作为参考,在本地计算机上,我正在使用它来检查模块是否已安装

pkg_resources.get_distribution(module)
这是为了检查特定的版本

pkg_resources.get_distribution(module).version

对远程系统执行此操作的最佳方法有何建议?

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

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

这应该足以检查远程服务器上安装了什么。

一旦您通过SSH连接到机器中,
pip freeze
grep
就可以查找是否安装了模块

进一步阅读:


至于SSHing,子流程库应该允许您运行这些命令

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

如果使用安装软件包,您可能需要查看该软件包


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

SSH?帕拉米科?Ansible?我们已经在使用ssh和paramiko包了。Linux不是我的强项,Python也不是那么好,所以请看一个步骤列表。我建议阅读ansible文档,如果您的Python不是很好,ansible很好,但不认为它适合我们正在寻找的功能。我们有一个用于本地机器的工作脚本,并希望将其扩展到远程系统。这将是虚拟环境的一个用例和一个需求文件。我需要从Python脚本执行此操作。这将自动依次连接到每个系统,并验证已安装的软件包您可以从Python运行
ssh
,可以使用
子流程
或许多包装器库中的一个。