gpt4 book ai didi

python3导入错误: while running with sudo -u python3

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:35:26 25 4
gpt4 key购买 nike

对于我的 python 脚本,我需要更改用户。因此我开始脚本:sudo -u eval python3 run_aufgabe2.py运行脚本没有问题,直到我从同一目录导入模块,然后我收到导入错误:

$ Traceback (most recent call last):
$ File "run_aufgabe2.py", line 5, in <module>
$ import aufgabe2
$ ImportError: No module named 'aufgabe2'

在没有 sudo -u eval 的情况下运行脚本,导入工作正常并且脚本运行没有错误。我首先想到一个权限问题,可能是用户eval无法读取文件aufgabe2.py,所以我改了权限:

$ -rwxrwxrwx 1 root root 3583 Apr 12 09:08 aufgabe2.py
$ -rwxrwxrwx 1 root root 0 Apr 12 09:08 __init__.py
$ -rwxrwxrwx 1 root root 432 Apr 12 09:43 run_aufgabe2.py

但仍然是同样的错误,我想不出更多的东西,但我确定我遗漏了一些东西。


编辑 1:

我必须使用各种 shell 脚本来运行 python 脚本。

用于简单脚本的 Bash 脚本:

#!/bin/bash
cd $1
sudo -u eval python3 $2

期望动态用户输入的脚本:

#!/usr/bin/expect
cd [lindex $argv 0]
spawn sudo -u eval python3 [lindex $argv 1]
#[...]

正如@FlyingTeller 在他的命令中提到的,我可以选择将当前工作目录添加到 PYTHONPATH 变量。我无法运行它,也许有人可以帮助我使用 shell 脚本。

非常感谢!

最佳答案

正如@FlyingTeller 所提到的,通常您在其中运行脚本的目录会添加到 sys.path 中。似乎 sudo -u eval 以某种方式搞砸了。解决方案是手动添加路径:

import sys
sys.path.append(".")

关于python3导入错误: while running with sudo -u <user> python3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49790960/

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