跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 迫于快吐了,咨询下树莓派上 Python 自启问题
未分類
5 2 月 2021

迫于快吐了,咨询下树莓派上 Python 自启问题

迫于快吐了,咨询下树莓派上 Python 自启问题

資深大佬 : nidongpinyinme 9

nohup python3 /home/pi/Recorder.py >> log.txt 2>&1 &  
  • 我把上述代码写进了 shell 自启脚本里,脚本中另外的 sh 文件等启动正常,该 py 脚本也正常,但是自启时就会在 log 文件中提示ModuleNotFoundError: No module named 'apscheduler'。
  • 检查过树莓派环境,python2.7 和 3.7 都装上了 apscheduler 库,也都可以执行,切换到 root 用户也没问题,但是在自启脚本里就是不行。
  • 自启脚本是在 rc.local 里启动的。
大佬有話說 (18)

  • 資深大佬 : jianixrabbit

    看看脚本当时的环境变量

  • 資深大佬 : imes

    有 systmd 不用,跑去用歪门邪道的 rc.local,出 bug 都难修。systemd 脚本如下,安装实际情况,修改用户和路径:
    “`
    [Unit]
    Description=Python Service
    After=multi-user.target

    [Service]
    WorkingDirectory=/path/
    User=root
    Type=idle
    ExecStart=/usr/bin/python3 /path/python.py
    Restart=always

    [Install]
    WantedBy=multi-user.target
    “`

  • 資深大佬 : farmer01

    nohup /usr/bin/python3 /home/pi/Recorder.py >> log.txt 2>&1 &

  • 主 資深大佬 : nidongpinyinme

    @jianixrabbit 在脚本里打印了环境变量发现确实和终端执行时的不一样,少了三方库的路径,那么他读的是哪个变量呢

  • 主 資深大佬 : nidongpinyinme

    @imes 谢谢哥,给我推开了新世界的门

  • 主 資深大佬 : nidongpinyinme

    @farmer01 指定了也是不行,好像是脚本里面找不到 python 的三方库路径

  • 主 資深大佬 : nidongpinyinme

    @jianixrabbit 说的有点傻了,我是用 python 的 sys.path 打印的

  • 資深大佬 : exiledkingcc

    你在终端里面运行的时候,会加载用户的一些环境变量。
    在 rc.local 运行的时候,没有这些东西。
    改成 systemd,然后把必要的 path 配置进去就行了。
    或者用 python 虚拟环境。

  • 資深大佬 : no1xsyzy

    现在 rc.local 也是靠 systemd 里一个 rc-local.service 来启动的…… 纯粹是向后兼容的目的留着的,没必要用

    至于 sys.path 还是自己看文档吧: https://docs.python.org/3/library/sys.html#sys.path

  • 資深大佬 : bao3

    其实对于一般的需求,rc.local 很方便,也不理解为啥系统要取消

  • 資深大佬 : JamesMackerel

    PYTHONPATH 环境变量了解一下。

  • 主 資深大佬 : nidongpinyinme

    @exiledkingcc 我改成 systemd 可以直接用 /叹气

  • 主 資深大佬 : nidongpinyinme

    @no1xsyzy 敬礼

  • 資深大佬 : farmer01

    @nidongpinyinme 可以像 imes 说的,注册成系统服务,或者是在 crontab 里引用 PATH

  • 資深大佬 : imycc

    py 依赖找不到的简单排错办法,启动的时候把 sys.path 打印出来,跟交互环境下的做对比。

    常见的错误是系统存在多个 py 版本,执行的时候是另一个 py 。或者你安装库的时候加了–user,把库安装到$HOME/.local 下面去了,执行的时候环境不一样。

  • 資深大佬 : neroxps

    2020 年了,还在用 rc.local

    SYSTEMD 作者现在还活的好好的

  • 主 資深大佬 : nidongpinyinme

    @neroxps 学会了学会了

  • 主 資深大佬 : nidongpinyinme

    @imycc 是的,我这边是装库位置不对

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具