pymongo 的安装有效,但在 python3 中导入失败

Sli*_*Jim 5 python ubuntu pymongo python-3.x

我目前正在运行 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
Run Code Online (Sandbox Code Playgroud)

我还尽可能地在安装之间进行了拆卸和清洁。

如果我导入 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
Run Code Online (Sandbox Code Playgroud)

该错误与pymongo 常见问题解答相同,但对我而言,我所在的位置并不重要。

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

Sli*_*Jim 0

它应该与

sudo python3.2 setup.py install
Run Code Online (Sandbox Code Playgroud)

但由于某种原因却没有

最好下载分布式和 pip 的源代码(并按此顺序安装它们)

sudo python3 setup.py install #distributed
sudo python3 setup.py install #pip
sudo pip-3.2 install pymongo
Run Code Online (Sandbox Code Playgroud)