【问题标题】:Make a program (aws cli) accessible for all users, installed by pip使所有用户都可以访问由 pip 安装的程序 (aws cli)
【发布时间】: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 &amp;&amp; sudo pip install jmespath
  • 现在它基本上为不同的模块抛出错误,我猜 awscli 没有正确安装,对于其他用户。 ImportError:没有名为 docutils.core 的模块
  • pip uninstall -y docutils &amp;&amp; sudo pip install docutils 依此类推,直到满足所有依赖项。

标签: python ubuntu pip aws-cli


【解决方案1】:

当我使用普通用户时发生了同样的问题。

# sudo -i    # switch to root
# aws configure          # give credencials

然后切换回普通用户。 aws configure 将适用于普通用户和 root 用户。

【讨论】:

    猜你喜欢
    • 2014-02-06
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-25
    相关资源
    最近更新 更多