python - RethinkDB 中使用 'idna' 编解码器进行编码失败

标签 python flask rethinkdb pythonanywhere compose-db

我有一个 flask 应用程序,它运行并连接到 compose.io 上的远程 rethinkdb 数据库。该应用程序还部署到 pythonanywhere.com ,但是此部署不断抛出以下错误:

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。

最佳答案

idna 编解码器正在尝试将您的 rethinkdb URL 转换为与 ascii 兼容的等效字符串。

这对我有用:

"rethinkdb://user:password@aws-us-east-1-portal.1.dblayer.com:23232".encode("idna")

所以我的猜测是您的用户名或密码中的某些字符/字符序列导致了问题。尝试使用(可能是伪造的)非常简单的密码进行连接,看看是否遇到同样的问题。

或者,您可以使用连接字符串在 Python shell 中进行编码,并逐渐简化它,直到找出有问题的部分。

关于python - RethinkDB 中使用 'idna' 编解码器进行编码失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39465259/

相关文章:

python - 从 python 命令行退出

python - 定期重启 Heroku Python 脚本

python - Flask 使用 __bind_key__ 继承多个相同数据库中的表类

python - X[ :, 0] 里面逗号的含义

python - Django 管理站点无法连接到数据库 - 使用了错误的 mongodb 引擎

node.js - 我该如何解决 npm 错误! js错误:0909006C:PEM in Node.?

python - 如何在 rethinkdb 中制作涉及字符串字段的映射?

node.js - 更改前关闭 RethinkDB 更改源

python - 有没有人有PyS60移动开发经验

python - 带有用于上传的 Flask 的 HTML 文件夹选择器