2016-02-07 19 views
7

próbuję zaimportować json_util w moim pliku środowiska:import błąd: nie moduł o nazwie bson

from bson import json_util 

otrzymuję ten błąd importu: no module named bson.

Próbowałem zainstalować i odinstalować pymongo i bess - ale nic nie pomagało. Dowiedziałem się, że pakiet bson jest zawarty w pymongo, więc zainstalowałem go jawnie, a następnie otrzymałem błąd importu EPOCH_AWARE.

Obecnie jest zainstalowane tylko pymongo. To działa, kiedy zmuszają środowiska wirtualnego za pomocą tej linii:

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

Ale gdy próbuję uruchomić go za pośrednictwem systemu operacyjnego, takich jak ten:

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

otrzymuję ten błąd przywozowej bson.

Edycja: Oto wynik lista pip

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

pomysłów?

+3

Który OS są uruchomione na? Czy próbowałeś zainstalować 'bson' używając pip jako admin/super user? Czy pracujesz z virtualenv czy nie? Jeśli tak, czy aktywowałeś go poprawnie przed uruchomieniem kodu? – albert

+0

'PYTHON_ENV' nie jest zmienną używaną przez Python –

+1

co się dzieje, jeśli importujesz bson na repl, jaki jest wynik listy pip? – FabioCosta

Odpowiedz

0

Spróbuj na terminalu:

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

Pozdrowienia

+0

Spróbuj także: 'sudo apt-get purge python-pymongo' następnie' sudo apt-get install python-pymongo' –

8

Jeśli ty nie pojawia się błąd no module named bson ale błąd EPOCH_AWARE import, to ze względu na nazwa spotkania pomiędzy bson i pymongo. W tym przypadku należy zrobić to w kolejności:

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

nie trzeba ponownie zainstalować bson