我试图用sudo
命令运行一些python代码,但是每次我这样做时,它都会给我一个导入错误。{cd2>如果终端没有出错。另外,如果我构建了一个包含多个导入的代码,然后不使用sudo
命令来运行它,那么它不会给我任何错误,代码也会完美地运行。我已经在sudoers文件夹中添加了默认值env_keep += "PYTHONPATH"
,所以这不是问题所在。我安装了水蟒3,也许这是有用的信息?在
我在运行GNOME Ubuntu16.04.1 LTS。和内核版本4.4.0-59-generic。在
对不起,我对这个很陌生,但我正在学习。在
我运行which python
,然后我运行sudo which python
,他们给了我不同的目录。在
sudo which python
给了我usr/bin/python
which python
给了我home/user/anaconda3/bin/python
我试着运行sudo ./anaconda3/envs/ml/bin/python doc.py
,但现在它说找不到文件。在
我用sudo
运行它,因为我需要docker
的权限才能工作。在
编辑:尝试sudo-E而不是sudo会产生相同的错误。在
问题是没有遵循通常的
sudo
在查看可执行文件时,^{PATH
顺序:它首先搜索系统目录。这是写在man sudo
中的:因此,要解决这个问题,必须确保给
sudo
的命令与系统可执行文件不匹配,即指定绝对路径:应该起作用的一般命令是:
^{pr2}$这是因为}标志使sudo不受影响地通过环境并执行正确的shell设置。在
which python
是在sudo
之前执行的,其输出作为参数传递给sudo
。但是sudo
默认情况下不执行任何“类似shell”的设置,并且可能会限制环境,因此您可以考虑使用-E
或{相关问题 更多 >
编程相关推荐