有没有办法通过SSH将Python psutil模块运送到没有Internet访问权限的计算机上?

时间:2019-08-27 17:27:51

标签: python linux ssh packaging psutil

我正在制作一个远程Linux工件收集脚本,并且想使用psutil模块,因为它包含许多方便的功能,这些功能很难重写。

问题在于,要运行的计算机不一定已连接到Internet。有没有办法通过ssh运送模块,以便我可以远程使用它?

1 个答案:

答案 0 :(得分:2)

我在没有SSH部件的个人计算机上尝试了此操作。但是,为了完整性和易用性,我将详细介绍如何使用scp将其上传到另一台设备。因此,您可能会遇到一些我没有遇到的错误。您已被警告。

步骤1:下载psutil程序包

在安装了pip的计算机上,使用以下命令下载psutil软件包:

pip download psutil

使用ls(在Linux上),我们可以看到当前目录中现在有一个* .tar.gz文件。在撰写本文时,当前的psutil版本是5.6.3,因此文件名是“ psutil-5.6.3.tar.gz”

步骤2:将文件上传到所需设备

确保您和目标设备都挂在同一个LAN上,并且知道目标设备的IP地址。我将此IP地址表示为“ W.X.Y.Z”。

要使用SSH上传文件,请运行:

scp /path/to/*.tar.gz username@W.X.Y.Z:/desired/path/to/*.tar.gz

如果您拥有SSH密钥并想使用该密钥登录,请使用-i标志将其传递:

scp -i /path/to/ssh/key/file /path/to/*.tar.gz username@W.X.Y.Z:/desired/path/to/*.tar.gz

步骤3:通过SSH连接到所需的设备

这一步很简单,但是我将其设为自己的一步,因为如果您不知道自己在做什么,就很容易出错。

将SSH连接到将文件上传到的设备上

ssh username@W.X.Y.Z

如果您没有SSH密钥,或者它不是SSH期望的密钥,则可能需要提供密码。

第4步:安装我们刚刚上传的软件包

现在只需安装软件包!

pip install /path/to/*.tar.gz

如果出现错误消息:

  

错误:无法卸载'psutil'。这是一个distutils安装的项目   因此我们无法准确确定哪些文件属于该文件   只会导致部分卸载。

那么您应该已经安装了psutil。您可以通过运行以下命令进行检查:

pip list | grep '^psutil'

您要在其上安装软件包的计算机上。

编辑

此外,如果您的Python脚本使用的是Python 3而不是Python 2(应该是因为Python 2的生命周期是2020年1月1日,所以应该是这样),将我刚使用过pip的所有地方替换为{{1 }}。