2016-02-07 7 views
7

Ich versuche json_util in meiner Umgebung Datei zu importieren:Importfehler: kein Modul mit dem Namen BSON

from bson import json_util 

Ich erhalte diese Importfehler: no module named bson.

Ich habe versucht, pymongo und bson zu installieren und zu deinstallieren - aber nichts schien zu helfen. Ich fand heraus, dass das Bson-Paket in Pymongo enthalten ist, also habe ich es explizit installiert und dann erhielt ich einen EPOCH_AWARE Importfehler.

Derzeit ist nur Pymongo installiert. Es funktioniert, wenn ich die virtuelle Umgebung erzwingen, indem Sie diese Zeile mit:

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

Aber wenn ich versuche, es durch die os wie folgt auszuführen:

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

Ich erhalte diese Importfehler auf BSON.

Edit: Hier ist die Liste pip Ausgang

(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) 

Irgendwelche Ideen?

+3

Welche OS sind bei Ihnen läuft? Haben Sie versucht, 'bson' mit pip als admin/super user zu installieren? Arbeitest du mit virtualenvs oder nicht? Wenn ja, haben Sie es vor dem Ausführen des Codes richtig aktiviert? – albert

+0

'PYTHON_ENV' ist keine Variable, die von Python verwendet wird –

+1

Was passiert, wenn Sie bson auf repl importieren, was ist die Ausgabe von pip list? – FabioCosta

Antwort

0

Bitte versuchen Sie es auf Ihrem Terminal:

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

Grüße

+0

Versuchen Sie auch: 'sudo apt-get bereinigen python-pymongo' dann 'sudo apt-get installieren python-pymongo' –

8

Wenn Sie nicht die no module named bson Fehler erhalten, aber die EPOCH_AWARE Importfehler, dann ist dies aufgrund eines Namenskonflikt zwischen BSON und pymongo. In diesem Fall sollten Sie diese tun, um:

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

Sie nicht brauchen BSON zu installieren wieder