2016-09-13 3 views
1

flask 앱이 실행되어 compose.iorethinkdb 데이터베이스에 연결됩니다. 이 앱은 pythonanywhere.com에 배포되어 있지만,이 배포 다음과 같은 오류를 던지고 계속 :'idna'코덱을 사용한 인코딩이 RethinkDB에서 실패했습니다.

Traceback (most recent call last): 
File "/home/user/.virtualenvs/venv/lib/python3.5/encodings/idna.py", line 165, in encode 
    raise UnicodeError("label empty or too long") 
UnicodeError: label empty or too long 

... 

rethinkdb.errors.ReqlDriverError: Could not connect to rethinkdb://[user]:[password]@aws-us-east-1-portal.1.dblayer.com:23232. Error: encoding with 'idna' codec failed (UnicodeError: label empty or too long) 

연결 코드는 정확히 다음과 같습니다

conn = r.connect(host='aws-us-east-1-portal.1.dblayer.com', 
      port=23232, 
      auth_key='[auth_key]', 
      ssl={'ca_certs': './cacert'}) 

내가 여기에서 진행하는 방법을 잘 모르겠어요.

Python 3.5를 실행 중입니다.

+0

"rethinkdb : // [user] : [password] @ aws-us-east-1-portal.1.dblayer.com : 23232"문자열이 오류 메시지의 출처로 혼동됩니다 . 'r.connect' 코드 스 니펫에는 해당 문자열이 포함되어 있지 않으므로 RethinkDB 드라이버는 이와 같이 보이는 URI를 생성하지 않습니다. 그래서'r.connect' 스 니펫이 오류와 일치하지 않는 것 같습니까? –

답변

2

idna 코덱이 rethinkdb URL을 ASCII 호환 동급 문자열로 변환하려고 시도하고 있습니다.

은 나를 위해 일한 :
"rethinkdb://user:[email protected]:23232".encode("idna") 

그래서 내 생각 엔이 사용자 이름이나 암호 문자의 일부 문자/순서가 문제를 일으키는 것입니다. 아주 간단한 암호로 (아마도 가짜) 연결을 시도하고 동일한 문제가 발생하는지 확인하십시오.

또는 연결 문자열을 사용하여 파이썬 셸에서 인코딩을 수행하고 문제가되는 부분을 식별 할 때까지 단계적으로 단순화 할 수 있습니다.

관련 문제