我正在尝试运行一个包 wal-e
,我已经以 root 用户身份使用 sudo python3 -m pip install wal-e[aws,azure,google,swift]
.
我可以使用envdir/etc/wal-e.d/env wal-e backup-fetch/var/lib/postgresql/9.6/main LATEST<作为用户
.root
完美地运行这个命令
但是,当我 sudo su - postgres
然后运行 envdir/etc/wal-e.d/env wal-e backup-fetch/var/lib/postgresql/9.6/main LATEST
,我得到了错误
Traceback (most recent call last):
File "/usr/local/bin/wal-e", line 7, in <module>
from wal_e.cmd import main
ImportError: No module named 'wal_e.cmd'
我使用 usermod -aG sudo postgres
给了用户 postgres
完整的 sudo 权限。 wal-e
包也安装在同一位置。
当我运行 ls -la
时,我得到了
-rwxr-xr-x 1 root root 211 Sep 20 14:24/usr/local/bin/wal-e
我也在 Ubuntu 16.04.3 上
如何像 root
用户一样运行命令?
最佳答案
我必须运行 strict setup process用于 wal-e 以便包装正常运行。
实际上,它归结为在安装和创建用户 postgres
之前,在我使用的机器上安装所有必要的依赖项。如果用户是在安装所有依赖项之前创建的,我会遇到权限错误。
关于python - 以用户 postgres 身份运行命令行导致找不到模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46338745/