【发布时间】:2018-08-24 20:44:23
【问题描述】:
我使用 sudo pip install awscli 安装了 aws-cli
当我以当前用户身份运行 awscli 时,它可以工作,但是当我运行时,尝试以其他用户身份运行 awscli
sudo -u jenkins aws
Traceback (most recent call last):
File "/usr/local/bin/aws", line 19, in <module>
import awscli.clidriver
File "/usr/local/lib/python2.7/dist-packages/awscli/clidriver.py", line 17, in <module>
import botocore.session
File "/usr/local/lib/python2.7/dist-packages/botocore/session.py", line 28, in <module>
import botocore.client
File "/usr/local/lib/python2.7/dist-packages/botocore/client.py", line 16, in <module>
from botocore import waiter, xform_name
File "/usr/local/lib/python2.7/dist-packages/botocore/waiter.py", line 13, in <module>
import jmespath
ImportError: No module named jmespath
【问题讨论】:
-
这很可能是因为没有为所有用户安装 JMESPath。运行
pip show jmespath | grep Location(作为当前用户),位置指向哪里? -
我运行它,它显示位置:/home/ubuntu/.local/lib/python2.7/site-packages,如何为所有用户安装它,当我运行 pip install 时它说 jmes 已经已安装。
-
运行
pip uninstall -y jmespath && sudo pip install jmespath -
现在它基本上为不同的模块抛出错误,我猜 awscli 没有正确安装,对于其他用户。 ImportError:没有名为 docutils.core 的模块
-
pip uninstall -y docutils && sudo pip install docutils依此类推,直到满足所有依赖项。