首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导入错误:无法导入名称'opentype‘

导入错误:无法导入名称'opentype‘
EN

Stack Overflow用户
提问于 2017-12-02 03:54:38
回答 2查看 17.3K关注 0票数 7

我正在尝试遵循在Raspberry Pi 2 B+上运行的py代码中使用Firebase的说明。在python 3上运行时,会发生一些不好的事情。

我已经在我的脚本中包含了pyrebase,但是当我使用python3运行它时,我得到了下面的结果(请参见下面的内容)。我一直在从事各种其他语言的工作,但我只是选择了python和Raspberry Pi作为我心目中的项目。

这篇文章将包含我的代码和我在运行代码时得到的终端输出

我的代码:

代码语言:javascript
复制
#import Libraries
import RPi.GPIO as GPIO
import time
import pyrebase
import os

#Firebase Configuration
config = {
          "apiKey": "apiKey",
          "authDomain": "rpitest-xxxxx.firebaseapp.com",
          "databaseURL": "rpitest-xxxxx.firebaseio.com",
          "storageBucket": "rpitest-xxxxx.appspot.com"
}

firebase = pyrebase.initialize_app(config)

#GPIO Setup
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(22, GPIO.OUT)

#Firebase Database Intialization
db = firebase.database()

#While loop to run until user kills program
while(True):
    #Get value of LED 
    led = db.child("led").get()

    #Sort through children of LED(we only have one)
    for user in led.each():
    #Check value of child(which is 'state')
      if(user.val() == "OFF"):
          #If value is off, turn LED off
          GPIO.output(22, False)
      else:
          #If value is not off(implies it's on), turn LED on
          GPIO.output(22, True)

      #0.1 Second Delay
      time.sleep(0.1) 

命令:

代码语言:javascript
复制
    pi@raspberrypi:~/Desktop/LearnPython $ sudo python3 IoTLED.py

输出:

代码语言:javascript
复制
    pi@raspberrypi:~/Desktop/LearnPython $ sudo python3 IoTLED.py
    Traceback (most recent call last):
      File "IoTLED.py", line 4, in <module>
        import pyrebase
      File "/usr/local/lib/python3.5/distpackages/pyrebase/__init__.py", line 1, in <module>
        from .pyrebase import initialize_app
      File "/usr/local/lib/python3.5/distpackages/pyrebase/pyrebase.py", line 17, in <module>
        from oauth2client.service_account import ServiceAccountCredentials
      File "/usr/local/lib/python3.5/dist-packages/oauth2client/service_account.py", line 26, in <module>
        from oauth2client import crypt
      File "/usr/local/lib/python3.5/dist-packages/oauth2client/crypt.py", line 23, in <module>
        from oauth2client import _pure_python_crypt
      File "/usr/local/lib/python3.5/dist-packages/oauth2client/_pure_python_crypt.py", line 24, in <module>
        from pyasn1_modules.rfc2459 import Certificate
      File "/usr/local/lib/python3.5/dist-packages/pyasn1_modules/rfc2459.py", line 20, in <module>
        from pyasn1.type import opentype
      ImportError: cannot import name 'opentype'

我的怀疑是:

我怀疑opentype库丢失了。

结尾备注:

我真的被困在这一点上一天多了。我需要帮助。非常感谢你,我真的很感谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2017-12-02 07:10:59

我也遇到了类似的问题,下面的代码帮我解决了这个问题:

pip install --upgrade google-auth-oauthlib

在我的设置中,google-auth-oauthlib依赖项似乎已过期。requirements.txt (https://github.com/google/aiyprojects-raspbian/blob/voicekit/requirements.txt)中的版本为0.1.0。我正在使用语音工具包,但同样的情况也适用于您的设置。

有关更多详细信息,请参阅此问题:ImportError: cannot import name 'opentype' on new installation

也可以在树莓派论坛上看到这个:https://www.raspberrypi.org/forums/viewtopic.php?f=114&t=198933&p=1241439#p1241439

票数 31
EN

Stack Overflow用户

发布于 2017-12-08 21:28:23

你也可以试试这个。这对我很管用。

代码语言:javascript
复制
pip install --upgrade pyasn1-modules
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47600597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档