2011-03-07 8 views
2

J'ai d'abord essayé avec l'interpréteur de produire des uuid avec le module uuid de python. J'ai fait ce qui suit:python uid bug bizarre

>>>import uuid 
>>>uuid.uuid1() 
UUID('d8904cf8-48ea-11e0-ac43-109add570b60') 

Jusqu'ici tout va bien. Je crée une petite fonction simple pour produire l'uuid.

import uuid 

def get_guid(): 
    return uuid.uuid1() 

if __name__ == '__main__': 
    print get_guid() 

et je reçois l'erreur suivante:

AttributeError: objet 'module' n'a pas d'attribut 'uuid1'

Ok ... hmm ... revenir à l'interprète et maintenant aussi est cassé. Je reçois la même erreur en utilisant le même code que j'ai utilisé pour le tester. Je suis déconcerté. Qu'est-ce qui fait que l'uuid se brise comme ça? Et quel est le problème avec mon code?

J'utilise Python 2.6

+1

je parie que vous avez nommé votre uuid.py script, ne le faites pas changer le nom de votre script. – mouad

+1

Le nom de votre fichier est-il uuid.py? – senderle

Répondre

14

Votre nom de fichier de test est très probablement nommé uuid.py

Lorsque vous êtes retourné à l'interprète, vous avez lancé l'interprète du même répertoire, qui, par défaut, regardera d'abord pour le nom du module à importer dans votre répertoire de travail actuel.

il suffit de changer le nom du fichier de test à autre chose, à savoir uuid_test_snippet.py

+0

c'était le truc ... erreur stupide ... leçon apprise ... merci! – deecodameeko

+0

Si vous exécutez python 2.6+, vous pouvez également faire 'depuis __future__ import absolute_import'. –