gpt4 book ai didi

Python 权限问题 Ubuntu

转载 作者:行者123 更新时间:2023-12-04 19:11:38 26 4
gpt4 key购买 nike

我正在尝试运行一个简单的 python 脚本

$python Solution.py read_input.txt

仅当我使用 sudo 时,
$sudo python Solution.py read_input.txt

我收到以下错误消息:
Traceback (most recent call last):
File "Solution1.py", line 2, in <module>
import numpy as np
ImportError: No module named numpy

这是由于权限问题。
$which python
/home/andrelandgraf/anaconda3/bin/python

$sudo which python
/usr/bin/python

我想使用我的 anaconda env 来运行该文件,但由于权限原因,我无法在没有 sudo 的情况下运行 python,这将导致运行无法访问 numpy 的系统版本的 python。

我试过 chmod 和 chown 给 python 所需的权限
$chmod -R 777 .

但是每当我在没有 sudo 的情况下运行 python 时,它只会打印一个空行并且什么也没有发生。

我还检查了我的 .bashrc 文件并回显了 $PATH,anaconda3 似乎安装得很好。
$PATH: /home/andrelandgraf/anaconda3/bin:/home/andrelandgraf/bin:/home/andrelandgraf/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

我该如何解决这个问题?

最佳答案

sudo不使用用户PATH出于安全原因可变。如果要准确指定要使用的可执行文件,则必须使用绝对路径:

sudo /home/andrelandgraf/anaconda3/bin/python Solution.py read_input.txt

我必须补充一点:只有在必要时,您才应该以 root 身份运行程序。在您的问题中,您没有说明为什么需要这样做,因此我们无法通过权限或解决方法帮助您解决问题。

如果你想知道为什么 sudo不查看用户定义为 PATH 的内容这很简单:如果用户下载了一个名为 ls 的恶意软件然后调用 sudo ls将以 root 身份运行恶意软件,这比以非正常用户身份运行恶意软件要糟糕得多。

所以 sudo只查看系统定义的 PATH变量,希望普通用户不能将这样的恶意软件放在系统目录中,因此 sudo ls执行普通命令 ls作为 root 而不是恶意软件。

关于Python 权限问题 Ubuntu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53681026/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com