python3导入错误:使用sudo u<user>python3运行时

2024-10-03 04:29:47 发布

您现在位置:Python中文网/ 问答频道 /正文

对于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,因此我更改了权限:

^{pr2}$

但还是一样的错误,我想不出更多的东西,但我确信我错过了一些东西。在


编辑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脚本。在

非常感谢!在


Tags: run用户py目录脚本权限bin错误
1条回答
网友
1楼 · 发布于 2024-10-03 04:29:47

正如@FlyingTeller所提到的,通常在运行脚本的目录中,get被添加到sys.path。似乎sudo -u eval不知怎么搞砸了。解决方案是手动添加路径:

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

相关问题 更多 >