pymongo的安装工作但在python3中导入失败

我目前正在运行Ubuntu 12.10并试图让pymongo在python3下正常工作.我尝试过的事情:

1. apt-get install python-pymongo
2. python setup.py install #from git source
3. easy_install pymongo
4. easy_install pymongo3
5. pip install pymongo
6. pip install pymongo3 #needed a fix in the download script

我也尽可能地在安装之间移除和清理.

如果我导入pymongo:

In [1]: import pymongo
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-1-ec8fdd1cd630> in <module>()
----> 1 import pymongo

/usr/local/lib/python3.2/dist-packages/pymongo-2.4.2_-py3.2-linux-x86_64.egg/pymongo/__init__.py in <module>()
     55     return '.'.join(map(str, version_tuple))
     56 
---> 57 version = get_version_string()
     58 """Current version of PyMongo."""
     59 

/usr/local/lib/python3.2/dist-packages/pymongo-2.4.2_-py3.2-linux-x86_64.egg/pymongo/__init__.py in get_version_string()
     51 
     52 def get_version_string():
---> 53     if isinstance(version_tuple[-1], basestring):
     54         return '.'.join(map(str, version_tuple[:-1])) + version_tuple[-1]
     55     return '.'.join(map(str, version_tuple))

NameError: global name 'basestring' is not defined

错误与pymongo FAQ相同,但对我而言,无论我在哪里都无所谓.

我的理论是pymongo的python2版本错误地添加了python3.

解决方法:

如果我将来需要它.

在ubuntu13中为python3安装pymongo

(1)不要直接在ubuntu软件中心安装pymongo;它们适用于旧版本的python(版本3之前)

如果你安装它,你将无法在python3中使用pymongo:

(2)你应该为python 3安装一个特定的python包安装程序:python3-pip

(3)使用提供的pip-3.3命令python3-pip包,在unbuntu的终端运行以下命令安装pymongo:

pip-3.3 install pymongo

如果您没有超级用户权限,请使用sudo运行它

sudo pip-3.3 install pymongo

(4)然后你应该没有安装pymongo的困难,可以在python3中使用.要验证它,请键入IDLE:

(5)你也可以毫不费力地在终端安装pymongo3:

pip-3.3 install pymongo3

但是没有必要安装它,因为它的所有功能现在都包含在当前的pymongo包中.

上一篇:如何将字符串转换为BSON?


下一篇:python – pymongo:更高效的更新