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(".")
对于我的 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(".")