2017-03-11 1 views
0

J'essaie de convertir les fichiers jpeg au format 'lmdb'. Mais je suis arrivé cette erreur:AttributeError: l'objet 'module' n'a pas d'attribut 'Environnement'

>>> import lmdb 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "lmdb.py", line 25, in <module> 
    write_images_to_lmdb('/home/anaca/ferjpg' , 'fer2013') 
    File "lmdb.py", line 13, in write_images_to_lmdb 
    env = lmdb.Environment(db_name, map_size=map_size) 
AttributeError: 'module' object has no attribute 'Environment' 

choses que je cherche:

pip install lmdb 
sudo apt-get install liblmdv-dev 

Voici le code:

import caffe 
import lmdb 
import os 
import numpy as np 
import matplotlib.pyplot as plt 
from caffe.proto import caffe_pb2 
from caffe.io import datum_to_array, array_to_datum 
def write_images_to_lmdb(img_dir, db_name): 
    for root, dirs, files in os.walk(img_dir, topdown = False): 
     if root != img_dir: 
      continue 
     map_size = 64*64*3*2*len(files) 
     env = lmdb.Environment(db_name, map_size=map_size) 
     txn = env.begin(write=True,buffers=True) 
     for idx, name in enumerate(files): 
      X = mp.imread(os.path.join(root, name)) 
      y = 1 
      datum = array_to_datum(X,y) 
      str_id = '{:08}'.format(idx) 
      txn.put(str_id.encode('ascii'), datum.SerializeToString()) 
    txn.commit() 
    env.close() 
    print " ".join(["Writing to", db_name, "done!"]) 

write_images_to_lmdb('/home/anaca/ferjpg' , 'fer2013') 
+0

quelle version de python utilisez-vous? utilisez-vous un virtualenv? quelle version de pip? – nir0s

Répondre

1

De votre retraçage il semble que si le script que vous essayez d'exécuter est nommé lmdb.py. Changez son nom en quelque chose d'autre.

Sinon, lorsque Python voit import lmdb, il suppose que vous voulez dire votre script plutôt que le module lmdb que vous avez installé.