由于"非ASCII字符' \ xe2'而Heroku崩溃在档案"错误

时间:2016-01-07 06:34:41

标签: python heroku flask

我试图在Heroku上设置Flask应用程序,但是Heroku似乎继续崩溃。 在Heroku日志中,由于此错误,Heroku似乎崩溃了:

SyntaxError: Non-ASCII character '\xe2' in file /app/app/range_parser.py on line 8, but no encoding declared;

以下是我尝试(尝试)解决问题的步骤:

  • 通过heroku config:add LANG=en_US.UTF-8
  • 将默认Heroku编码设置为UTF-8
  • 添加了# -*- coding: utf-8 -*-# encoding=utf8# coding: utf-8到文件标题
  • 在root中设置runtime.txt文件,运行时设置为python-3.4.3
    • 注意:重新部署应用程序后,构建仍然会读取 -----> Installing runtime (python-2.7.11),所以我实际上并不确定heroku是否实际上正在注册runtime.txt文件。有办法检查吗?
  • 弄乱有问题的实际文件。看来,当我删除文件中的所有内容但是标题并让它返回none时,它仍然在第8行给出了相同的错误(即使在甚至没有8行的情况下也是如此)文件)。这让我相信错误可能源于运行时版本/其他与文件本身无直接关系的错误。
  • 最后,在本地,通过run.py文件和heroku local部署应用程序。这令人惊讶地起作用,再一次让我相信问题出在Heroku身上,而不是文件。

如何解决此问题?

2 个答案:

答案 0 :(得分:0)

我猜你的应用程序range_parser.py的第8行你有代码,它采用unicode而不是编码utf-8字符串并崩溃了应用程序。检查您是否有某种文本分配,转换或某种使用,并将其编码为utf-8。类似的东西:

your_var.encode('utf-8') #if it is a unicode string

答案 1 :(得分:0)

弄清楚Heroku崩溃的原因。

我的错误是即使我设置了runtime.txt来构建python-3.4.3,我忘了提交并推送文件,并git push heroku master来重建运行时。

不确定为什么编码错误首先发生,但3.4.3似乎是固定的。