2016-04-21 2 views
1

Я работаю над приложением (python 2.7) flask-mongoengine, которое использует ObjectId для bson. Проект требует bson тем или иным способом. У меня нет доступа к корневому на хосте я пытаюсь развернуть приложение и пункт установить BSON не удается:Как найти правильную версию bson из pip для pymongo/mongoengine

-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 работать с моей настройкой?

Thank you soo много!

ответ

0

У меня была аналогичная проблема.

Просто скачайте архив с https://pypi.python.org/pypi/bson/0.4.3 и сделать установку вручную:

python setup.py install 
+0

+1 за это - я, наверное, добавил, - если я ставлю BSON == 0.4.3 в моих requrements. txt, я могу выполнить установку pip. Однако, в BSON помощи он говорит: следующие типы не поддерживается, так как для обмена данных целей, они избыточно: .... 0x07 (ObjectId) .... так что пока это способ получить действительную версию bson через pip, это действительно не решает проблему. – delarond2004

+0

Согласно документации пакета: «Этот пакет bson предназначен для Python 3 и не будет работать с Python 2!» [bson 1.1.0] (https://pypi.python.org/pypi/bson/1.1.0) – Mihai

0

Поскольку у меня нет корневого доступа и не могут установить версию распределения BSON, я решил бросить объект определение моего документа DB. Это решает это для меня, так как оно также более чистое, но правда в том, как заявил Михай: pip install bson, похоже, ограничен проектами python3.

0

Я была такая же проблема и переустановку PyMongo фиксированной зависимости BSON:

pip install --upgrade --force-reinstall pymongo 
Смежные вопросы