webentwicklung-frage-antwort-db.com.de

ImportError: Der Name 'opentype' kann bei einer Neuinstallation nicht importiert werden

Ich habe gerade ein Google Cloud-Compute-Modul erstellt, ein Google-Cloud-Paket mit Pip und Pip3 installiert und beim Starten eines Skripts mit Python3 tritt der folgende Fehler auf

    from google.cloud import bigquery
  File "/usr/local/lib/python3.5/dist-packages/google/cloud/bigquery/__init__.py", line 35, 
in <module>
    from google.cloud.bigquery.client import Client
  File "/usr/local/lib/python3.5/dist-packages/google/cloud/bigquery/client.py", line 36, in
 <module>

(more traceback lines..)

    from pyasn1_modules.rfc2459 import Certificate
  File "/usr/local/lib/python3.5/dist-packages/pyasn1_modules/rfc2459.py", line 20, in <modu
le>
    from pyasn1.type import opentype
ImportError: cannot import name 'opentype'

Auf der Compute Engine werden folgende Pakete installiert:

pyasn1==0.1.9
pyasn1-modules==0.2.1
google-cloud==0.30.0
google-cloud-bigquery==0.28.0

Welches kann hier das Problem sein?

6
user1403546

Es sieht so aus, als hätten Sie ein Problem mit pyasn1, Sie könnten also versuchen, eine neuere Version zu installieren (die neueste ist 0.4.2 ) oder sie manuell neu zu installieren:

Sudo apt-get --reinstall install python-pyasn1 python-pyasn1-modules

Wenn Sie sich in einem virtualenv befinden, verwenden Sie stattdessen:

pip install pyasn1 pyasn1-modules
14
dsesto

Meine Lösung zu veröffentlichen, falls sie jemandem hilft - das hat es für mich behoben:

pip install --upgrade google-auth-oauthlib

Weitere Details finden Sie hier: https://www.raspberrypi.org/forums/viewtopic.php?f=114&t=198933&p=1241439#p1241439

38
Captain Whippet

FWIW - hatte das gleiche Problem - keiner der oben genannten hat funktioniert. Ich entdeckte schließlich, dass ich es unter Sudo it did work erledigte. 

das Original stracing - Ich fand heraus, dass ich ein ~/.local-Verzeichnis hatte, das ein pyasn1-Verzeichnis hatte, aus dem er die Dateien abrufen wollte, aber das opentype.py one did not dort nicht auftauchte. Wenn ich das ganze Verzeichnis gelöscht habe, hat es funktioniert.

Ich nehme an, es war eine Art Cache, der teilweise und veraltet war?

0
Brad