【问题标题】:how to find right version of bson from pip for pymongo/mongoengine如何从 pip 为 pymongo/mongoengine 找到正确的 bson 版本
【发布时间】:2016-08-15 01:14:00
【问题描述】:

我正在开发一个(python 2.7)flask-mongoengine 应用程序,它使用 bson 的 ObjectId。该项目以一种或另一种方式需要bson。我在尝试部署应用程序的主机上没有 root 访问权限,并且 pip install bson 失败:

-bash-4.1$ pip install bson
Collecting bson
 Using cached bson-1.1.0.tar.gz
  Complete output from command python setup.py egg_info:
  Traceback (most recent call last):
   File "<string>", line 1, in <module>
   File "/tmp/pip-build-BBOawV/bson/setup.py", line 24, in <module>
    import bson
   File "bson/__init__.py", line 66, in <module>
    from . import codec
   File "bson/codec.py", line 28, in <module>
    from .objects import *
   File "bson/objects.py", line 36
    class BSONObject(object, metaclass=ABCMeta):
                                      ^
SyntaxError: invalid syntax

----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-BBOawV/bson/

另一方面,https://api.mongodb.org/python/current/installation.html 声明我不应该使用这个版本的 bson 并依赖 pymongo 的实现。但是,在我安装了 pymongo-3.2.1 的计算机上,我无法导入 pymongo.objectId - 那么我做错了什么以及如何让 bson 使用我的设置?

非常感谢!

【问题讨论】:

    标签: pymongo mongoengine bson flask-mongoengine


    【解决方案1】:

    我遇到了同样的问题,重新安装 PyMongo 修复了 BSON 依赖项:

    pip install --upgrade --force-reinstall pymongo
    

    【讨论】:

      【解决方案2】:

      由于我没有 root 访问权限并且无法安装 bson 的分发版本,因此我选择在我的 DB 文档定义中删除该对象。 这为我解决了这个问题,因为它也更干净,但事实正如 Mihai 所说:pip install bson 似乎仅限于 python3 项目。

      【讨论】:

        【解决方案3】:

        我也有类似的问题。

        只需从https://pypi.python.org/pypi/bson/0.4.3 下载压缩包 并进行手动安装:

        python setup.py install
        

        【讨论】:

        • 为此 +1 - 我可能应该添加 - 如果我将 bson==0.4.3 放在我的 requrements.txt 文件中,我可以进行 pip 安装。但是,在 bson 帮助中它说:不支持以下类型,因为出于数据交换的目的,它们被过度设计: .... 0x07 (ObjectId) .... 所以虽然这是一种获得有效的方法bson 版本通过 pip,并不能真正解决问题。
        • 根据包文档:“这个 bson 包是为 Python 3 设计的,不适用于 Python 2!” bson 1.1.0
        猜你喜欢
        • 2021-05-16
        • 1970-01-01
        • 2015-10-18
        • 2017-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-11
        • 2020-08-13
        相关资源
        最近更新 更多