使用 sudo 启动时,Python 找不到模块

Jan*_*Jan 6 python module root gpio google-assistant-sdk

我有一个使用 Google 助理库的脚本,并且必须从那里导入一些模块。我发现这只适用于 Python 虚拟环境,这真的很奇怪。在同一个文件夹中,我有一个脚本,它使用 GPIO 引脚并且必须使用 root。它们相互交互,所以当我启动 GPIO 脚本时,Assistant 脚本也启动了。但是由于某种原因,当脚本以 root 启动时,其中的模块无法导入。有人知道这件事吗?

Gio*_*Xou 13

不是 100% 确定,但你尝试过吗:

sudo -E python myScriptName.py
Run Code Online (Sandbox Code Playgroud)

正如这里提到的


mil*_*ilo 6

通常你可以激活一个虚拟环境并使用环境中的解释器来运行你的脚本。但这不是必需的。

假设您在路径 /path-to-env/env 下有一个虚拟环境,您要运行 example.py 的脚本位于 /path-to-script/example.py 路径下

你已经可以运行这个example.py了

sudo /path-to-env/env/bin/python /path-to-script/example.py
Run Code Online (Sandbox Code Playgroud)