2016-02-07 25 views
7

Sto cercando di importare json_util nel mio file di ambiente:errore di importazione: No module named BSON

from bson import json_util 

ottengo questo errore di importazione: no module named bson.

Ho provato a installare e disinstallare pymongo e bson, ma nulla sembrava essere d'aiuto. Ho scoperto che il pacchetto bson è incluso in pymongo, quindi l'ho installato in modo esplicito e quindi ho ricevuto un errore di importazione EPOCH_AWARE.

Attualmente è installato solo pymongo. Funziona quando forzo l'ambiente virtuale utilizzando questa linea:

#subprocess.Popen(['/home/.virtualenvs/simple_worker/bin/python', fileName]) 

Ma quando provo a farlo funzionare attraverso il sistema operativo come questo:

os.system('PYTHON_ENV=%s python %s' % (env, fileName)) 

ottengo questo errore di importazione su BSON.

Edit: Ecco l'elenco pip uscita

(simple_worker) ➜ worker pip list                       ✭ ✱ 
apache-libcloud (0.17.0) 
backports.ssl-match-hostname (3.4.0.2) 
gnureadline (6.3.3) 
google-api-python-client (1.3.1) 
httplib2 (0.9.2) 
ipdb (0.8) 
ipython (2.3.1) 
mock (1.0.1) 
oauth2client (1.5.1) 
pbr (0.10.7) 
pika (0.9.14) 
pip (8.0.2) 
psutil (2.2.0) 
py (1.4.26) 
pyaml (15.2.1) 
pyasn1 (0.1.7) 
pyasn1-modules (0.0.5) 
pymongo (3.2.1) 
pytest (2.6.4) 
pytest-mock (0.4.0) 
pytz (2015.4) 
PyYAML (3.11) 
redis (2.10.3) 
requests (2.8.0) 
rsa (3.1.4) 
setuptools (11.0) 
simplejson (3.6.5) 
six (1.9.0) 
stevedore (1.2.0) 
uritemplate (0.6) 
urllib3 (1.10) 
virtualenv (12.0.7) 
virtualenv-clone (0.2.5) 
virtualenvwrapper (4.3.2) 

Tutte le idee?

+3

Quale sistema operativo sono in esecuzione a? Hai provato a installare 'bson' usando pip come admin/super user? Stai lavorando con virtualenv o no? Se sì, l'hai attivato correttamente prima di eseguire il codice? – albert

+0

'PYTHON_ENV' non è una variabile utilizzata da Python –

+1

cosa succede se si importa bson su repl, qual è l'output della lista pip? – FabioCosta

risposta

0

Si prega di provare sul vostro terminale:

sudo apt-get purge python-bson 
sudo apt-get install python-bson 

saluti

+0

Prova anche: 'sudo apt-get purge python-pymongo' quindi 'sudo apt-get install python-pymongo' –

8

Se non lo fanno ottiene l'errore no module named bson ma l'errore EPOCH_AWARE importazione, questo è dovuto ad uno scontro tra il nome BSON e pymongo. In questo caso si dovrebbe fare questi in ordine:

sudo pip uninstall bson 
sudo pip uninstall pymongo 
sudo pip install pymongo 

non è necessario installare di nuovo BSON