2016-02-07 4 views
7

Я пытаюсь импортировать json_util в моем файле среды:ошибка импорта: нет модуля с именем BSON

from bson import json_util 

Я получаю эту ошибку импорта: no module named bson.

Я попытался установить и удалить pymongo и bson - но ничего не помогло. Я узнал, что пакет bson включен в pymongo, поэтому я установил его явно, а затем получил ошибку импорта EPOCH_AWARE.

В настоящее время установлено только pymongo. Она работает, когда я заставляю виртуальную среду с помощью этой строки:

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

Но когда я пытаюсь запустить его через зева, как это:

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

Я получаю эту ошибку на импорт BSON.

Edit: Вот пип Выходной список

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

Есть идеи?

+3

Какой ОС вы работаете на? Вы пытались установить 'bson' с помощью pip в качестве администратора/суперпользователя? Вы работаете с virtualenv или нет? Если да, правильно ли вы активировали его перед запуском кода? – albert

+0

'PYTHON_ENV' - это не переменная, используемая Python –

+1

Что произойдет, если вы импортируете bson на repl, каков вывод списка pip? – FabioCosta

ответ

0

Пожалуйста, попробуйте на вашем терминале:

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

С уважением

+0

Попробуйте также: 'sudo apt-get purge python-pymongo', тогда' sudo apt-get install python-pymongo' –

8

Если вы не получить ошибку no module named bson но ошибка EPOCH_AWARE импорта, это связано с имя столкновения между BSON и pymongo. В этом случае вы должны сделать это в следующем порядке:

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

вам не нужно устанавливать BSON снова

Смежные вопросы