【问题标题】:root user execution failsroot 用户执行失败
【发布时间】:2017-02-21 04:17:03
【问题描述】:

当我运行 python abc.py 时,它运行良好

但是当我执行 sudo python abc.py 时,它会显示一些包丢失错误。在几个导入错误中,这是一个:

ImportError: No module named numpy

为什么?

我认为这些软件包是使用普通用户(ubuntu)权限而不是 root 权限安装的。如果是这种情况,我应该如何克服它?我是否必须以 root 访问权限再次安装所有软件包?

注意:我在这里讨论的所有内容都是 w.r.t ec2 linux ubuntu 机器

【问题讨论】:

  • “以普通用户权限安装”是什么意思?你是如何安装包的?您应该通过 Ubuntu 的包管理器 (apt-get) 或通过 easy_install 或 pip 以 root 身份安装它。
  • 我使用 pip install package-name 安装的软件包为我工作

标签: python linux python-2.7


【解决方案1】:

sudo 环境可能不包含您的PYTHONPATH

/etc/sudoers 包含默认值 env_reset。 只需将默认值env_keep += "PYTHONPATH" 添加到/etc/sudoers,它就可以与sudo 一起正常工作。

【讨论】:

  • 上面写着W10: Warning: Changing a readonly file不会造成任何问题吗?
  • 阅读 - 如何编辑 sudoers:digitalocean.com/community/tutorials/…
  • 这对我不起作用,当我执行 echo $PYTHONPATH 时,这没有给我任何输出 - BLANK
  • 系统上的python是使用系统中的Anaconda安装的
  • 试试这个:将 export PYTHONPATH=/your/custom/path 添加到 ~/.bashrc 或 /etc/bash.bashrc。在 sudoers 文件中将 PYTHONPATH 添加到 Defaults env_keep += "ENV1 ENV2 ..."。从 sudoers 文件中删除默认值 !env_reset(如果存在)
猜你喜欢
  • 1970-01-01
  • 2021-05-28
  • 2022-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-17
  • 2023-03-15
  • 1970-01-01
相关资源
最近更新 更多