2010-11-20 35 views
9

je tente d'exécutercharge numpy soulève "AttributeError: objet 'module' n'a pas d'attribut 'expr'"

#!/usr/bin/env python 

import os 
from numpy import * 

b= ones((3, 3)) 
print b 
save('fff', b) 
a = load('fff.npy') 
print a.shape 
print 'fertig' 

mais il soulève:

Traceback (most recent call last): 
    File "savetest.py", line 9, in <module> 
    a = load('fff.npy') 
    File "/usr/lib/python2.6/dist-packages/numpy/lib/io.py", line 195, in load 
    return format.read_array(fid) 
    File "/usr/lib/python2.6/dist-packages/numpy/lib/format.py", line 353, in read_array 
    shape, fortran_order, dtype = read_array_header_1_0(fp) 
    File "/usr/lib/python2.6/dist-packages/numpy/lib/format.py", line 250, in read_array_header_1_0 
    d = safe_eval(header) 
    File "/usr/lib/python2.6/dist-packages/numpy/lib/utils.py", line 840, in safe_eval 
    ast = compiler.parse(source, "eval") 
    File "/usr/lib/python2.6/compiler/transformer.py", line 53, in parse 
    return Transformer().parseexpr(buf) 
    File "/usr/lib/python2.6/compiler/transformer.py", line 132, in parseexpr 
    return self.transform(parser.expr(text)) 
AttributeError: 'module' object has no attribute 'expr' 

J'ai essayé l'exemple de docs.scipy.org soulève la même erreur dans mon terminal, mais cela fonctionne dans mon IDE ERIC python. Internet ne me fournit pas de solution compréhensible ou transférable pour le moment.

Enfin, est-ce que quelqu'un voit l'erreur dans mon code ou approche et est capable de fournir une solution pour cela?

+0

Veuillez formater votre code multiligne et vos backtraces en indentant avec quatre espaces (Ctrl-K dans l'éditeur) – ptomato

Répondre

7

Je pense que vous devez avoir un autre fichier nommé parser.py quelque part dans vos fichiers (ceux que Python peut trouver). Il fait en sorte que Python trouve le mauvais module d'analyseur. Regardez autour de vous et voyez si c'est le cas. Ce pourrait être aussi un fichier parser.so.

Essayez d'entrer dans une session interactive et en tapant:

import parser 
print parser.__file__ 

Espérons que vous dire où se trouve le fichier gênant.

+0

Il y avait effectivement un tel fichier dans ce répertoire. Je l'ai renommé. Maintenant, cela fonctionne comme il se doit. Merci d'avoir fait ma journée. – Sebastian

+1

Cela m'est arrivé avec un fichier appelé 'signal.py' – Abramodj

+0

@Abramodj même chose est arrivé à moi parce que mon fichier a été appelé signal.py – Atti