Debian &引用;无效语法";使用“调用python代码时”;sudo python main.py“;但不使用;python main.py“;

Debian &引用;无效语法";使用“调用python代码时”;sudo python main.py“;但不使用;python main.py“;,debian,sudo,Debian,Sudo,我有这段代码 now=datetime.datetime.now(pytz.timezone(“欧洲/哥本哈根”)) log_name=f“{os.path.dirname(os.path.dirname(os.path.realpath(uuu file_uuu)))}/logs/main/{now.strftime(格式='%Y-%m-%d')}.log”#创建日志的路径 logging.basicConfig(filename=log\u name,filemode=“a”,level=l

我有这段代码

now=datetime.datetime.now(pytz.timezone(“欧洲/哥本哈根”))
log_name=f“{os.path.dirname(os.path.dirname(os.path.realpath(uuu file_uuu)))}/logs/main/{now.strftime(格式='%Y-%m-%d')}.log”#创建日志的路径
logging.basicConfig(filename=log\u name,filemode=“a”,level=logging.INFO,格式='%(astime)s%(levelname)s:%(message)s',datefmt='%Y-%m-%d%H:%m')
当运行
python main.py
时,它可以正常工作。但是,如果我以sudo运行它,即
sudopython main.py
我会得到这个错误

 File "main.py", line 28
    log_name = f"{os.path.dirname(os.path.dirname(os.path.realpath(__file__)))}/logs/main/{now.strftime(format='%Y-%m-%d')}.log" #Create path for log
                                                                                                                               ^
SyntaxError: invalid syntax

为什么
sudo
会抛出这样的错误?

超级用户
root
(运行
sudo
命令的用户)可能会被设置为使用不同版本的Python。试着运行
sudopython--version
来检查。我在一个virenv中运行它,但是是的,它会抛出两个不同的版本。Sudo
/usr/bin/python
,“非Sudo”
path/to/virenv/bin/python
。有没有办法让sudo也使用激活的virenv?在大多数情况下,使用
sudo
运行命令可能表明存在设计缺陷。为什么您需要以
sudo
身份运行?这应该解决什么问题?因为只有sudo作为日志文件的访问权限,我有一个应用程序登录到/var/log/syslog,用户无法读取该文件。因此,sudo不是必需的。