【问题标题】:Is there a way to ship the Python psutil module over ssh to a computer without internet access?有没有办法通过 ssh 将 Python psutil 模块发送到没有互联网访问权限的计算机?
【发布时间】:2019-08-27 17:27:51
【问题描述】:

我正在制作一个远程 Linux 工件收集脚本,并希望使用 psutil 模块,因为它包含许多方便的功能,重写起来会很痛苦。

问题在于,这将在其上运行的计算机不一定连接到互联网。有没有办法通过 ssh 发送模块,以便我可以远程使用它?

【问题讨论】:

  • 您需要物理访问或访问可以连接到相关服务器的 Intranet。

标签: python linux ssh packaging psutil


【解决方案1】:

我在我的个人机器上试过这个,没有 SSH 部分。但是,为了完整性和易用性,我将详细说明如何使用scp 将其上传到另一台设备。因此,您可能会遇到一些我没有遇到的错误。您已收到警告。

第一步:下载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 所期望的,您可能需要提供密码。

第四步:安装我们刚刚上传的包

现在只需安装软件包!

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

如果您收到错误提示:

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

那么你应该已经安装了psutil。您可以通过运行来检查:

pip list | grep '^psutil'

在您尝试安装软件包的机器上。

编辑

此外,如果您的 Python 脚本使用的是 Python 3 而不是 Python 2(应该是因为 Python 2 的生命周期结束是 2020 年 1 月 1 日),请将我刚刚使用的所有 pip 替换为 pip3

【讨论】:

    猜你喜欢
    • 2012-07-29
    • 1970-01-01
    • 2022-06-24
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 2013-06-07
    • 2014-12-20
    • 2018-07-07
    相关资源
    最近更新 更多