• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

bson 설치후 오류, from flask_pymongo import PyMongo

20.10.12 19:16 작성 조회수 643

1

안녕하세요. bson을 설치한 이후에 아래와 같이 오류가 납니다.

(env_doc) D:\workspace\python36\DocN_web>python run.py

Traceback (most recent call last):

  File "run.py", line 4, in <module>

    from flask_pymongo import PyMongo 

  File "C:\Anaconda3\envs\env_doc\lib\site-packages\flask_pymongo\__init__.py", line 35, in <module>

    from gridfs import GridFS, NoFile

  File "C:\Anaconda3\envs\env_doc\lib\site-packages\gridfs\__init__.py", line 23, in <module>

    from bson.py3compat import abc

ImportError: cannot import name 'abc'

아래처럼 삭제하고 다시 설치하면 되는데, bson  을 설치하면 다시 오류가 발생합니다. 혹시 버전이나 설치시 주의 사항이 있나요?

pip uninstall bson

pip uninstall pymongo

pip uninstall flask-pymongo

pip install flask-pymongo

pip install pymongo

--bson을 설치하면 다시 오류가 발생합니다.

pip install bson

답변 부탁드립니다. 감사합니다.

답변 7

·

답변을 작성해보세요.

0

MIKE.aeon님의 프로필

MIKE.aeon

질문자

2020.10.13

아래 링크 마지막 부분보면 pymongo 특정 버전이후부터 충돌난다고 나옵니다. 저는 힘들어서 테스트해보진 못했습니다.

https://stackoverflow.com/questions/46890665/pymongo-import-errors-in-python3-flask-application

0

MIKE.aeon님의 프로필

MIKE.aeon

질문자

2020.10.13

개인간 차이일수도 있는데, 여기서도

pip uninstall bson, pip uninstall pymongo, pip uninstall flask-pymongo 삭제하고 flask-pymongo, pymongo 만 설치하니 잘되고 있습니다. 구글링해도 이렇게 하라고만 나와서 저도 정답은 모르겠지만, 삭제후 flask-pymongo, pymongo 만 다시 설치해도 잘되는걸 보면 구글링이 맞는거 같기도 하고 헷갈립니다.

0

MIKE.aeon님의 프로필

MIKE.aeon

질문자

2020.10.12

안녕하세요. 강사님. 환경이 조금 불안정한거 같아서 순수버전으로  다시 설치하고 했는대로 문제가 발생하는거 같습니다.

아래는 제가 설치한 버전들이고,

(venv_doc) D:\workspace\python36\DocN_web\venv_doc>pip list

Package            Version

------------------ ---------

beautifulsoup4     4.9.3

bson               0.5.10

certifi            2020.6.20

chardet            3.0.4

click              7.1.2

flake8             3.8.4

Flask              1.1.2

Flask-PyMongo      2.3.0

idna               2.10

importlib-metadata 2.0.0

itsdangerous       1.1.0

Jinja2             2.11.2

MarkupSafe         1.1.1

mccabe             0.6.1

pip                20.2.3

pycodestyle        2.6.0

pyflakes           2.2.0

pymongo            3.11.0

python-dateutil    2.8.1

requests           2.24.0

setuptools         50.3.0

six                1.15.0

soupsieve          2.0.1

urllib3            1.25.10

Werkzeug           1.0.1

wheel              0.35.1

zipp               3.3.0

(venv_doc) D:\workspace\python36\DocN_web\venv_doc>

(venv_doc) D:\workspace\python36\DocN_web\venv_doc>python run.py

혹시 강사님의 환경버전 알수 있나요?

0

하나 더 덧붙이자면 bson 은 다른 여러 라이브러리에서도 참조되어 사용되는 경우가 많은데 이때 버전마다 상이한 기능으로 인해 오동작하게 되는 경우가 많습니다. 도움 주신 추가 말씀 감사합니다.

0

MIKE.aeon님의 프로필

MIKE.aeon

질문자

2020.10.12

혹시나 도움이 되실분이 있을지도 몰라서 댓글한개 더 올립니다.

저는 아나콘다 사용중입니다. 상기 오류 발생시, 아래의 패키지를 설치 방법에 따라 아래 처럼 삭제했습니다. conda 로 설치하신 분은 콘다로 지우시면 됩니다.

pip uninstall bson, pip uninstall pymongo, pip uninstall flask-pymongo

그리고 conda install -c conda-forge pymongo, pip install flask-pymongo 만 설치했습니다. 그랬더니, 

"from bson.objectid import ObjectId" 항목에 대한 임포트 오류가 발생하지 않았습니다. 명확히 예기드리면 conda install -c conda-forge pymongo 설치후 부터 bson이 정상설치된것 처럼, 정상동작을 하였습니다.

개인적인 환경이지만, 혹시라도 동일한 오류 발생하신분들에게 도움이 될까 해서 공유합니다.

0

MIKE.aeon님의 프로필

MIKE.aeon

질문자

2020.10.12

답변 감사합니다.

0

강좌에서는 아나콘다 환경이 아닌걸 기준으로 진행한 이유가 아나콘다 환경에서는 라이브러리 설치시 라이브러리 충동 등으로 외부 라이브러리가 제대로 설치 되지 않는 경우가 많습니다. 말씀하신 문제 역시 그와 비슷한 문제로 사료됩니다만 제가 정확하게 무엇이 문제인지 확인 할 수 없어 정확한 답변을 드리기가 어렵습니다. 

아나콘다 환경이 아닌 환경을 새로 생성하여 테스트를 해보시는것을 추천드립니다.