【问题标题】:installation of pymongo works but fails at import in python3pymongo 的安装工作但在 python3 中导入失败
【发布时间】:2013-01-30 12:46:36
【问题描述】:

我目前正在运行 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。

【问题讨论】:

    标签: python ubuntu python-3.x pymongo


    【解决方案1】:

    它应该适用于

    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
    

    【讨论】:

      【解决方案2】:

      以防我将来需要它。

      在ubuntu13 for 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 包中。

      【讨论】:

      • 它的名字改为 pip3,所以输入“pip3”。祝你好运!
      【解决方案3】:

      使用 pip3 安装对我有用

      sudo pip3 install pymongo
      

      要使用 pip3,作为先决条件,必须安装 pip 的 Python 3 副本,可以按如下方式完成

      sudo apt-get install python3-pip
      

      【讨论】:

      • 我在尝试时收到以下错误:在 pymongo 的安装记录中找不到 .egg-info 目录
      【解决方案4】:
      1. https://pypi.python.org/pypi/pymongo#downloads下载最新的pymongo(3.4.0)

      2. 解压文件:tar -zxvf pymongo-3.4.0.tar.gz

      3. 通过触发运行安装:python3 setup.py install

      注意:当然,您需要在提取的 pymongo 目录中触发上述命令。您可能还需要以 root 身份运行它,否则您将遇到写权限问题。我使用的是 CentOS 7,它运行起来很轻松!

      【讨论】:

        猜你喜欢
        • 2012-05-31
        • 2015-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-27
        • 2014-09-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多