Py学习  »  Python

当Python脚本从RC本地启动时,导入optype的问题

user2128702 • 5 年前 • 382 次点击  

我想做的是在一个RasBee启动上执行一个Python脚本。我的做法是:

#!/bin/sh -e
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi
/usr/bin/python /home/pi/Desktop/MyProj/sample/main.py > /home/pi/Desktop/projStartup.log 2>&1 &
exit 0

它的写作方式基本上意味着我开始把它作为一个分叉的过程。 “&” 最后)每个日志都应该进入 projstartup.log文件 文件。

当我打开终端并键入:

pi@raspberrypi:~ $ /etc/rc.local

一切按预期运行,但当我试图重新启动Raspbian时,我得到以下错误(错误堆栈的顶部):

File "/home/pi/Desktop/MyProj/sample/firebaseManager.py", line 1, in <module>
    from pyrebase import pyrebase
  File "/usr/local/lib/python2.7/dist-packages/pyrebase/__init__.py", line 1, in <module>
    from .pyrebase import initialize_app
  File "/usr/local/lib/python2.7/dist-packages/pyrebase/pyrebase.py", line 17, in <module>
    from oauth2client.service_account import ServiceAccountCredentials
  File "/usr/local/lib/python2.7/dist-packages/oauth2client/service_account.py", line 26, in <module>
    from oauth2client import crypt
  File "/usr/local/lib/python2.7/dist-packages/oauth2client/crypt.py", line 23, in <module>
    from oauth2client import _pure_python_crypt
  File "/usr/local/lib/python2.7/dist-packages/oauth2client/_pure_python_crypt.py", line 24, in <module>
    from pyasn1_modules.rfc2459 import Certificate
  File "/usr/local/lib/python2.7/dist-packages/pyasn1_modules/rfc2459.py", line 20, in <module>
    from pyasn1.type import opentype
ImportError: cannot import name opentype

如你所见,进口 小精灵 . 我的脚本使用的其他模块也有类似的问题,解决方案是使用以下方法在全局范围内安装它们:

sudo pip install ...

所以,现在我想知道,为了避免这个opentype问题,需要在全局级别上更新什么。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46235
 
382 次点击  
文章 [ 1 ]  |  最新文章 5 年前
user2128702
Reply   •   1 楼
user2128702    6 年前

正如《西比恩》所建议的

解决方案 :我的解决方案是显式设置pi用户(登录时使用的用户)。

sudo -H -u pi /usr/bin/python /home/pi/Desktop/MyProj/sample/main.py > /home/pi/Desktop/projStartup.log 2>&1 &