8
votes

Problèmes important un module Python

J'essaie d'utiliser le module de bitstring code> de Python de Python dans un script et d'obtenir une erreur d'importation. Cette erreur ne se produit pas lors de l'exécution du mode interactif.

Voici le code: p> xxx pré>

Lorsque vous exécutez comme suit: P>

$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import bitstring
>>> b = bitstring.BitArray(bin='001001111')
>>> print b
0b001001111


7 commentaires

Imprimer bitsrting .__ Fichier __ à partir du script en mode non interactif et assurez-vous qu'il indique le fichier correct


Est-ce que cela se produit dans le même répertoire?


Je prédis que vous avez créé un bitstring.py dans votre répertoire actuel.


I pip ed bitstring , a dirigé votre code et je n'ai aucun problème. J'ai utilisé CPPHON 2.7 sur WinXP. Avez-vous essayé de l'exécuter ou d'installer le bitstring correctement?


Michael, tu as raison! lol merci pour la pointe.


Comparez votre sys.path résultats dans les deux environnements.


Je doute que cela soit toujours relevant de l'affiche originale, mais j'espère que cela aide quelqu'un à essayer de trouver la réponse à un problème, ma supposition serait la mise en cache de module par l'interprète, si vous avez changé le module et ne rechargez pas l'interprète, le module peut alors ont été mis en cache


3 Réponses :


1
votes

Le problème est causé par un fichier bitstring.py dans sys.path de test.py , mais pas dans celui de l'interactif coquille python. Très probablement, il y a un fichier bitstring.py dans le répertoire test.py est dans, et vous avez démarré votre shell à partir d'un autre répertoire de travail.

Depuis Python Traverses Sys.Path de l'avant à l'extrémité, des modules dans le répertoire en cours - même si cela a été créé accidentellement - surchargez ceux des répertoires de la bibliothèque système.


0 commentaires

0
votes

Google App Moteur avait réellement un numéro similaire à un point. La solution la plus facile qui commençait simplement la ligne d'incrimination ou l'utilisation, essayez ... Sauf. Évidemment cela ne fonctionnera pas ici.

Dans ce cas, le problème était l'ordre d'initialisation. Une demi-seconde plus tard, une ligne de code similaire a été rappelé avec succès. Leur solution? refacteur. : - (

Le meilleur que j'ai vu est une recherche dynamique de la classe: bitstring .__ dict __. Obtenez ("bitarray") ou getattr (bitstring, "bitstring"); . Ce n'est pas idéal (et je crois que j'ai même vu ces retours null), mais j'espère que cela peut vous amener quelque part.


0 commentaires

7
votes

Je prédis que vous avez créé un bitstring.py dans votre répertoire actuel.


0 commentaires