对于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
,因此我更改了权限:
但还是一样的错误,我想不出更多的东西,但我确信我错过了一些东西。在
编辑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所提到的,通常在运行脚本的目录中,get被添加到
sys.path
。似乎sudo -u eval
不知怎么搞砸了。解决方案是手动添加路径:相关问题 更多 >
编程相关推荐