已经不记得树莓派上在root和pi用户上同时安装过python的package。
在pi上部署的python程序可以正常的启动,但是部署成服务后就没有办法正常启动。检查发现是root用户导package时报错。通过find找到root和pi用户的site-packages目录是不一样的。这个原因是pip3安装时是默认安装在用户的python目录下的,所以就会出现pi用户可以启动,root用户启动不了。
解决办法到是比较简单,在root上将mariadb、schedule两使用到的包再安装一遍。当然,也可以通过ln的方式,将pi安装的packages链接到root用户的目录下。
使用ln的好处就是少安装,少占用点空间,对于树莓派而言还是有必要的。
ln -s /home/pi/.local/lib/python3.7/site-packages/schedule /usr/local/lib/python3.7/dist-packages/schedule
ln -s /home/pi/.local/lib/python3.7/site-packages/schedule-1.1.0.dist-info /usr/local/lib/python3.7/dist-packages/schedule-1.1.0.dist-info
root@raspberrypi4:/home/pi/.local/lib/python3.7/site-packages# python3
Python 3.7.3 (default, Jan 22 2021, 20:04:44)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import schedule
>>> import mariadb
>>>
|