pymongo安装成功但在python3中导入失败

5 投票
4 回答
6807 浏览
提问于 2025-04-17 15:54

我现在在用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的常见问题里说的一样,但对我来说,出错的地方和我所在的位置无关。

我猜测是因为pymongo的python2版本不小心被装到了python3里。

4 个回答

1

我用pip3安装的时候没问题

sudo pip3 install pymongo

要使用pip3,首先需要安装Python 3版本的pip,安装方法如下

sudo apt-get install python3-pip
1

为了将来需要的时候方便查找。

在ubuntu13上为python3安装pymongo

(1) 不要直接在ubuntu软件中心安装pymongo;那里提供的版本是旧版的python(3之前的版本)。

enter image description here

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

enter image description here

(2) 你应该为python 3安装一个特定的包管理工具:python3-pip。

enter image description here

(3) 使用pip-3.3命令,运行下面的命令在ubuntu的终端中安装pymongo:

pip-3.3 install pymongo

如果你没有超级用户权限,记得加上sudo来运行。

sudo pip-3.3 install pymongo

(4) 这样你就可以顺利安装pymongo,并在python3中使用它。为了验证,打开IDLE输入:

enter image description here

(5) 你也可以在终端中轻松安装pymongo3:

pip-3.3 install pymongo3

不过其实不需要单独安装,因为现在的pymongo包里已经包含了所有功能。

0

它应该可以用这个

sudo python3.2 setup.py install

但不知道为什么它不行

最好是先下载分发版和pip的源代码(并按照这个顺序安装)

sudo python3 setup.py install #distributed
sudo python3 setup.py install #pip
sudo pip-3.2 install pymongo

撰写回答