2017-10-23 2 views
1

나는 몽고 데이터베이스에 쓰는 파이썬 flask 기반 응용 프로그램을 가지고 있습니다.python3 플라스크 응용 프로그램에서 pymongo 가져 오기 오류

나는이 문제로 실행 다음 requirements.txt

Flask 
Jinja2 
Werkzeug 
certifi 
chardet 
gunicorn 
requests 
flask_restful 
flask 
pymongo 

python 3을 사용하고 있습니다 :

Traceback (most recent call last): 
File "bin/app.py", line 4, in <module> 
from helper import save_message_2_db 
File "/app/bin/helper.py", line 1, in <module> 
from database import DataAccess, MongoDB 
File "/app/bin/database.py", line 1, in <module> 
import pymongo 
File "/app/.heroku/python/lib/python3.6/site-packages/pymongo/__init__.py", line 83, in <module> 
from pymongo.collection import ReturnDocument 
File "/app/.heroku/python/lib/python3.6/site-packages/pymongo/collection.py", line 21, in <module> 
from bson.code import Code 
File "/app/.heroku/python/lib/python3.6/site-packages/bson/code.py", line 19, in <module> 
from bson.py3compat import string_type, PY3, text_type 
ModuleNotFoundError: No module named 'bson.py3compat' 

나는 이런 일이 않는 이유를 이해하려고 노력하고 있어요?

이 섹션

내가 인터넷 블로그의 대부분

File "/app/.heroku/python/lib/python3.6/site-packages/pymongo/__init__.py", line 83, in <module> 
from pymongo.collection import ReturnDocument 
File "/app/.heroku/python/lib/python3.6/site-packages/pymongo/collection.py", line 21, in <module> 
from bson.code import Code 
File "/app/.heroku/python/lib/python3.6/site-packages/bson/code.py", line 19, in <module> 
from bson.py3compat import string_type, PY3, text_type 
ModuleNotFoundError: No module named 'bson.py3compat' 

과 걱정 것입니다/링크 bsonpymongo 것은 서로 잘 연주 해달라고 말해. pymongobson의 자체 버전이 있으며 내 requirements.txt에 필요하지 않습니다.

저는 왜 이런 일이 일어나고 이것을 어떻게 remidiate하는지에 대한 도움을 찾고 있습니다.


업데이트 내가 pymongo-3.5.1를 사용하던 1

#하고, 문제가 지속 이잖아. 방금 pymongo-3.5.0으로 다운 그레이드하고 문제가 사라졌습니다.

즉,이 문제를 해결하기위한 해결 방법을 알고 있지만 업스트림 코드/패키지에는 해결해야 할 문제가 있습니다.

sudo pip uninstall bson 
sudo pip uninstall pymongo 

을 다음 pymongo이 핍를 사용하여 다시 설치 :

+0

위의 오류는 내 'python version' 및'requirements.txt'와 관련이 있다고 생각합니다. – sudhishkr

+0

다시 업그레이드를 시도 했습니까? 이 두 버전 사이의 [비교] (https://github.com/mongodb/mongo-python-driver/compare/0b0f045...ca57ece)에는 문제와 관련된 변경 사항이 표시되지 않습니다. – c11o

+0

@ c11o - 이건 미친 짓이야. 내 영웅 배포 절차에서 문제가 생긴 것 같아.지금 나는 최신으로 움직이고, 나는 그 문제를 보지 않는다. – sudhishkr

답변

1

bsonpymongo을 모두 제거하려고

sudo pip install pymongo 
+0

yeahp - 이미 이것을 시도했습니다. 이것이 제가 질문에 게시하고 요구 사항 파일을 제공 한 이유입니다. – sudhishkr

+0

나는 잘 모르겠다 - 왜이 단계가 효과가 없었는지, 내가 시도한 것은 이것과 비슷한 것이다. 이것이 지금까지 가장 가까운 대답 인 것처럼 보이는 heroku – sudhishkr

1

그것은 일어나고 일부 패키지를 잘못 될 수 있습니다. bson 패키지가 mongo-python-driver 인 경우 19 번째 줄부터 import 문 from bson.py3compat import string_type, PY3, text_type이 존재합니다.

그러나 py3compat.py 파일이 누락되었습니다. code.py 옆에있는 bson 경로에 있어야합니다.

문제의 업데이트 후 업데이트

우리가 다운 그레이드가 문제를 해결 알려주는 두 버전 사이의 code changes 검사는이 문제에 아무런 관련 변경은 식별 할 수 없습니다. 따라서 모듈에 문제가 있다는 것을 더 많이 암시합니다. 정확히 말하기 어렵습니다.

+0

과 isuee 일 수 있었는지, 왜 내가 이걸 때리는 지에 대한 수수께끼. – sudhishkr

+0

나는 당신의 답 방향으로 나의 발견을 업데이트하고있다. – sudhishkr

+0

귀하의 답변을 업데이트 할 수 있습니까? -이 문제를 디버깅하는 단계를 찾는 올바른 방법으로 그것을 선택할 수 있습니다. – sudhishkr

관련 문제