我在Django 1.10应用程序中使用Pillow 4.2在图像上插入一些包含unicode emojis的文本。由于向后兼容性原因,整个过程在Python 2.7上运行。
在本地,它就像一个魅力。顺便说一下,我使用OpenSansEmojis.tff
作为字体。
当我在Heroku上推送我的代码时,表情符号字符没有正确显示,我得到了“方形”字符(▯)。也就是说,'é','è','ç'等重音字符都能正确显示。
我应该补充说,该功能由Celery 4. * worker(Heroku上的单独dyno)运行。
我尝试设置PYTHONIOENCODING
,但没有帮助。
我尝试使用the trick mentioned here但它也没有帮助。
答案 0 :(得分:0)
好的,所以有点难以弄清楚,但我认为Heroku正在运行narrow build的Python,而我正在运行一个"宽的"建立在我的笔记本电脑上。
这解释了为什么表情符号字符在本地正确显示,但即使安装了完全相同的代码和依赖项,也无法生成。
为了迫使Heroku使用"宽"我使用Conda
buildpack而不是python应用程序的默认buildpack。 Conda似乎运行了广泛的构建,无论如何我需要它,因为Pillow / PIL无法使用默认的buildpack正确安装。