导入错误:没有名为bson的模块

Lia*_*lem 13 python bson pymongo

我正在尝试导入json_util我的环境文件:

from bson import json_util
Run Code Online (Sandbox Code Playgroud)

我收到这个导入错误:no module named bson.

我试图pip安装和卸载pymongo和bson - 但似乎没有任何帮助.我发现bson包包含在pymongo中所以我明确安装它然后我收到一个EPOCH_AWARE导入错误.

目前,只安装了pymongo.当我使用此行强制虚拟环境时,它可以工作:

#subprocess.Popen(['/home/.virtualenvs/simple_worker/bin/python', fileName])
Run Code Online (Sandbox Code Playgroud)

但是当我尝试像这样通过操作系统运行它时:

os.system('PYTHON_ENV=%s python %s' % (env, fileName))
Run Code Online (Sandbox Code Playgroud)

我在bson上得到了这个导入错误.

编辑:这是点子列表输出

(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)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

kom*_*mer 23

如果你没有得到no module named bson错误但是EPOCH_AWARE导入错误,这是由于bson和pymongo之间名称冲突.在这种情况下,您应该按顺序执行以下操作:

sudo pip uninstall bson
sudo pip uninstall pymongo
sudo pip install pymongo
Run Code Online (Sandbox Code Playgroud)

你不需要再次安装bson


A S*_*ANI 2

请在您的终端上尝试:

sudo apt-get purge python-bson
sudo apt-get install python-bson
Run Code Online (Sandbox Code Playgroud)

问候

  • 也许'pip install bson' (2认同)