En Python, comment utilisez-vous décimal module dans un script plutôt que l'interprète?
Je suis à l'aide de Python 2.5.4 et l'utilisation de la virgule module. Lorsque je l'utilise dans l'interpréteur, je n'ai pas de problème. Par exemple, cela fonctionne:
>>> from decimal import *
>>> Decimal('1.2')+ Decimal('2.3')
Decimal("3.5")
Mais, quand j'ai mis le code suivant:
from decimal import *
print Decimal('1.2')+Decimal('2.3')
dans un fichier séparé (appelé decimal.py) et de l'exécuter en tant que module, l'interprète se plaint:
NameError: name 'Virgule' n'est pas défini
J'ai aussi essayé de mettre ce code dans un fichier séparé:
import decimal
print decimal.Decimal('1.2')+decimal.Decimal('2.3')
Quand je le lance en tant que module, l'interprète dit:
AttributeError: 'module' objet n'a pas d'attribut 'Virgule'
Ce qu'il se passe?
Êtes-vous sûr que le script est en cours d'exécution avec la même version de Python que votre interactive interprète? Essayez de le mettre dans un
Peut-être que vous avez créé un fichier appelé
J'ai essayé de courir dans mon script: import sys print sys.version et oui, l'interprète ne dire que c'est la même version. Je pense que je n'ai qu'une version installée sur mon ordinateur.
Je pense essayer d'ajouter
Elle fonctionne. @gnibbler: Oui, mon script sur un fichier nommé decimal.py et c'était le problème. Pour le fixer, j'ai fait un "enregistrer sous" à mon fichier et l'a nommé d'un nom différent, puis supprimé compilé "virgule" et "decimal.py". Merci pour l'aide de tous!
print sys.version
si vous voulez vérifier.Peut-être que vous avez créé un fichier appelé
decimal.py
qui est importé au lieu de Python intégréJ'ai essayé de courir dans mon script: import sys print sys.version et oui, l'interprète ne dire que c'est la même version. Je pense que je n'ai qu'une version installée sur mon ordinateur.
Je pense essayer d'ajouter
print dir(decimal)
après import decimal
et de vérifier quelles sont les fonctions sont exposés.Elle fonctionne. @gnibbler: Oui, mon script sur un fichier nommé decimal.py et c'était le problème. Pour le fixer, j'ai fait un "enregistrer sous" à mon fichier et l'a nommé d'un nom différent, puis supprimé compilé "virgule" et "decimal.py". Merci pour l'aide de tous!
OriginalL'auteur jack | 2010-06-26
Vous devez vous connecter pour publier un commentaire.
Vous avez nommé votre script decimal.py comme le répertoire du script est le premier dans le chemin d'accès des modules les modules sont regardé en haut de votre script est trouvé et importés. Vous n'avez pas de quoi nommée Décimal dans votre module, ce qui provoque cette exception d'être soulevées.
Pour résoudre ce problème, il suffit de renommer le script, aussi longtemps que vous êtes en train de jouer quelque chose comme foo.py, bar.py, baz.py, spam.py ou eggs.py est un bon choix pour un nom.
Merci gnibbler et Daslch.
OriginalL'auteur DasIch
Cela fonctionne très bien pour moi sur Python 2.5.2
Je vous invite à spécifier ce que vous souhaitez utiliser à partir de décimal
Dans votre autre exemple, vous devez utiliser
J'ai édité mon post qui, à l'origine de lire "importer décimal impression décimal.Decimal('1.2')+Virgule('2.3')" à maintenant lire: "l'importation décimal impression décimal.Decimal('1.2')+virgule.Decimal('2.3')"
OriginalL'auteur John La Rooy