2017-01-25 3 views
0

Je reçois cette erreur lorsque j'essaie d'importer un module du paquet Prov. Voici le contenu de mon dossier:ImportError lors de la tentative d'importation du module Prov en Python

#!/usr/bin/env 
import sys 
egg_path='/Library/Python/2.7/site-packages/prov-1.5.0-py2.7.egg/prov' 
sys.path.append(egg_path) 
#... rest of code 
import model as prov 

def main(): 
    # Create a new provenance document 
    d1 = ProvDocument() # d1 is now an empty provenance document 
    # Declaring namespaces for various prefixes used in the example 
    d1.add_namespace('now', 'http://www.provbook.org/nownews/') 
    d1.add_namespace('nowpeople', 'http://www.provbook.org/nownews/people/') 
    d1.add_namespace('bk', 'http://www.provbook.org/ns/#') 

    # Entity: now:employment-article-v1.html 
    e1 = d1.entity('now:employment-article-v1.html') 
    # Agent: nowpeople:Bob 
    d1.agent('nowpeople:Bob') 

Et voici la sortie:

Traceback (most recent call last): File "prov.py", line 6, in <module> import model as prov File "/Library/Python/2.7/site-packages/prov-1.5.0-py2.7.egg/prov/model.py", line 25, in <module> from prov import Error, serializers ImportError: cannot import name Error

Toutes les idées ou des corrections? J'ai installé Prov en utilisant easy_install prov.

Répondre

0

J'ai trouvé l'erreur. Le nom de mon fichier dans lequel j'essayais d'importer s'appelait aussi prov.py. C'était un problème de dépendance circulaire.

Merci les gars pour ces réponses rapides!

1

Vous devez renommer votre fichier de module prov.py. Il empêche l'importation de la bibliothèque tierce, car le nom du module est en conflit.

Assurez-vous que prov.pyc est supprimé.

+0

Pouvez-vous élaborer? Le fichier que j'essaie d'importer est appelé model, qui essaye d'importer un Error et Serializers à partir d'un fichier appelé prov .. cependant, je ne vois pas de prov dans le paquet. – Dre

+0

ahh je l'ai réparé! Mon fichier que j'utilisais s'appelait aussi prov.py donc c'était une dépendance circulaire. – Dre

+0

'prov prov Erreur, les sérialiseurs 'essaie d'importer' prov'; Au lieu de 'prov' du paquet' prov', votre module nommé 'prov' est importé. Essayez d'ajouter la ligne suivante au début de votre fichier: 'import prov; imprimer (prov) ' – falsetru