繁体   English   中英

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

[英]How do I programmatically check to see if a python package is installed on a remote Linux machine?

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

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

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 Frozen和grep应该可以发现模块是否已安装。

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

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

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

如果您使用需求文件来安装软件包,则可能需要查看“ compare-requirements”软件包。

至于能够远程运行它,您应该能够使用SSH来实现,如AetherUnbound建议

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM