我有一个Python脚本,我需要在启动时运行,问题是它抛出了一个错误,说“没有模块名为xyz”。我使用的是我用pip3安装的外部库。脚本本身运行得很好,但当我想要在启动后立即运行它时,会出现上述错误。
我该怎么做?我尝试使用time.sleep(10)延迟导入库,以防第三方库在启动后需要几秒钟才能加载,但这并没有达到预期的效果。
我在Raspberry Pi上使用基于Debian的操作系统Raspbian运行脚本。我通过将此配置文件添加到/etc/ sudo python3 script.py
文件来配置启动时的执行。
发布于 2018-07-17 04:30:09
我不明白没有sudo
的pip install
是怎么工作的。
我看到的是:从pi
或/etc/profile启动时运行的脚本是在根用户下运行的,而不是在cron用户下运行的。因此,它们的$PATH
、$PYTHONPATH
和其他环境变量值与您在用户的shell中拥有的值不同。
由于pip install
设法在没有sudo
的情况下运行,我怀疑您将模块安装到了特定于用户的目录中,而该目录不是root
的Python环境的一部分。
用sudo -u pi python3 script.py
替换/etc/profile
行可能会有所帮助。
无论是什么,这都是Python环境中已经存在的区别。等待10秒“无论发生什么”都无济于事。
https://stackoverflow.com/questions/51369426
复制相似问题