我正在制作一个远程Linux工件收集脚本,并且想使用psutil模块,因为它包含许多方便的功能,这些功能很难重写。
问题在于,要运行的计算机不一定已连接到Internet。有没有办法通过ssh运送模块,以便我可以远程使用它?
答案 0 :(得分:2)
我在没有SSH部件的个人计算机上尝试了此操作。但是,为了完整性和易用性,我将详细介绍如何使用scp
将其上传到另一台设备。因此,您可能会遇到一些我没有遇到的错误。您已被警告。
psutil
程序包在安装了pip
的计算机上,使用以下命令下载psutil
软件包:
pip download psutil
使用ls
(在Linux上),我们可以看到当前目录中现在有一个* .tar.gz文件。在撰写本文时,当前的psutil
版本是5.6.3,因此文件名是“ psutil-5.6.3.tar.gz”
确保您和目标设备都挂在同一个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
这一步很简单,但是我将其设为自己的一步,因为如果您不知道自己在做什么,就很容易出错。
将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
的所有地方替换为{{1 }}。