attributeerror:'tuple'对象在heroku日志上没有属性'decode'

t40tm48m  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(380)

运行时 heroku logs --tail 我得到这个错误。
我在heroku应用程序上实现redistogo,当我添加 "REDISTOGO_URL" 对于我的代码,它返回了这个错误。我真的不知道为什么我加上这个会破坏我的整个代码。我是在没有电话的情况下运行的 "REDISTOGO_URL" 但我意识到我需要它在我的应用程序,以工作提前感谢。
这是我的密码:

redis_url = ('REDISTOGO_URL','redis://localhost:6379')
redis = redis.from_url(redis_url)

app.config["SESSION_FILE_DIR"] = mkdtemp()
app.config["SESSION_PERMANENT"] = False
app.config["SESSION_TYPE"] = "redis"
app.config["SESSION_REDIS"] = redis

sess = Session()
sess.init_app(app)

这是整个错误代码:

2020-06-02T21:29:55.662911+00:00 app[web.1]: connection_pool = ConnectionPool.from_url(url, db=db,**kwargs)
2020-06-02T21:29:55.662912+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/redis/connection.py", line 995, in from_url
2020-06-02T21:29:55.662912+00:00 app[web.1]: url = urlparse(url)
2020-06-02T21:29:55.662912+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/urllib/parse.py", line 372, in urlparse
2020-06-02T21:29:55.662913+00:00 app[web.1]: url, scheme, _coerce_result = _coerce_args(url, scheme)
2020-06-02T21:29:55.662913+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/urllib/parse.py", line 124, in _coerce_args
2020-06-02T21:29:55.662913+00:00 app[web.1]: return _decode_args(args) + (_encode_result,)
2020-06-02T21:29:55.662914+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/urllib/parse.py", line 108, in _decode_args
2020-06-02T21:29:55.662914+00:00 app[web.1]: return tuple(x.decode(encoding, errors) if x else '' for x in args)
2020-06-02T21:29:55.662914+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/urllib/parse.py", line 108, in <genexpr>
2020-06-02T21:29:55.662915+00:00 app[web.1]: return tuple(x.decode(encoding, errors) if x else '' for x in args)
2020-06-02T21:29:55.662916+00:00 app[web.1]: AttributeError: 'tuple' object has no attribute 'decode'
6qfn3psc

6qfn3psc1#

只有打电话给 os.getenv ,例如:

redis_url = os.getenv('REDISTOGO_URL', 'redis://localhost:6379')

# ^^^^^^^^^

redis = redis.from_url(redis_url)

这是根据:https://devcenter.heroku.com/articles/redistogo
第二个值, 'redis://localhost:6379' ,在环境没有名为 REDISTOGO_URL .
你可以跑了 heroku config -a your_app_name_here 看看是否 REDISTOGO_URL 已设置。

相关问题