Motd Python 脚本无法与导入的库一起使用

Motd Python 脚本无法与导入的库一起使用

我正在尝试编辑 motd,但我想使用 Python 脚本而不是 bash 脚本。事实证明,Python 脚本不适用于导入的库。

例如,这将有效:

#!/usr/bin/env python3
print("Hello")

然而,这是行不通的:

#!/usr/bin/env python3
import psutil
print(f"Users: {len(psutil.users())}")

使用该命令时,sudo update-motd两个脚本均有效,但当我尝试通过 ssh 连接时,只有上面的脚本有效。我已经检查了 ssh 的以下设置:

在 /etc/ssh/sshd_config 中 PrintMotd 已启用:

PrintMotd yes

在 /etc/pam.d/ssh 中我对 motd 有以下设置:

session    optional     pam_motd.so  motd=/run/motd.dynamic
session    optional     pam_motd.so noupdate

我正在使用 Ubuntu 18.04.3 LTS x86_64

答案1

我自己找到了解决方案:解决这个问题的最好方法是创建一个虚拟环境(首先用 安装它sudo apt-get install python-virtualenv

然后启动它virtualenv path/to/env

激活它source path/to/env/bin/activate

使用 pip3 安装所有依赖项

然后在 motd 文件中,我只需将 shebang 更改为指向虚拟环境

#!path/to/env/bin/python3

相关内容