python3 import error: while running with sudo -u <user> python3

python3 import error: while running with sudo -u <user> python3

对于我的 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 的脚本,导入正常,脚本正在 运行ning 没有错误。我首先想到一个权限问题,可能是用户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 
sudo -u eval python3 

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

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

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

非常感谢!

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

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