Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Sphinx和blockdiag:非英语字符给出UnicodeError_Python_Python Sphinx - Fatal编程技术网

Python Sphinx和blockdiag:非英语字符给出UnicodeError

Python Sphinx和blockdiag:非英语字符给出UnicodeError,python,python-sphinx,Python,Python Sphinx,我有一个RST文件要用Sphinx编译 我有一个方框图 我想为它的一些节点指定非英语名称 .. blockdiag:: diagram { "UberMega" -> "HellSotona" -> "KakoDemon" -> "Кролики и котятки"; } 唉,这给了我一个错误: File "C:\Python2\lib\site-packages\blockdiag\imagedraw\png.py", line 282, in

我有一个RST文件要用Sphinx编译

我有一个方框图

我想为它的一些节点指定非英语名称

.. blockdiag::

   diagram {
     "UberMega" -> "HellSotona" -> "KakoDemon" -> "Кролики и котятки";
   }
唉,这给了我一个错误:

  File "C:\Python2\lib\site-packages\blockdiag\imagedraw\png.py", line 282, in textlinesize
    size = self.draw.textsize(string, font=None)
  File "C:\Python2\lib\site-packages\PIL\ImageDraw.py", line 282, in textsize
    return font.getsize(text)
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-5: ordinal not in range(256)
WARNING: blockdiag error: UnicodeEncodeError caught (check your font settings)

如何处理它?

python 2中的字符串默认情况下不是unicode。试试这个:

.. blockdiag::

diagram {
 "UberMega" -> "HellSotona" -> "KakoDemon" -> u"Кролики и котятки";
}

默认情况下,python 2中的字符串不是unicode。试试这个:

.. blockdiag::

diagram {
 "UberMega" -> "HellSotona" -> "KakoDemon" -> u"Кролики и котятки";
}

只是面临着同样的问题。看起来您正在sphinx文档中使用它

你应该指向你的unicode TrueType字体(把它放在
\u static
目录中,我选择了DejaVuSans。没有理由,在互联网上很容易找到)。将
.ttf
文件复制到静态目录,并将此行添加到
conf.py

import os
blockdiag_fontpath = os.path.abspath(u'_static/fonts/DejaVuSans.ttf')

注意相对路径前的
u
标记。如果项目的路径包含任何非ASCII字符,并且路径不是unicode字符串,则Blockdiag会忽略这一点。

刚刚遇到了同样的问题。看起来您正在sphinx文档中使用它

你应该指向你的unicode TrueType字体(把它放在
\u static
目录中,我选择了DejaVuSans。没有理由,在互联网上很容易找到)。将
.ttf
文件复制到静态目录,并将此行添加到
conf.py

import os
blockdiag_fontpath = os.path.abspath(u'_static/fonts/DejaVuSans.ttf')

注意相对路径前的
u
标记。如果项目的路径包含任何非ASCII字符,并且路径不是unicode字符串,则Blockdiag将忽略此项。

我已经尝试过了。没有什么变化。blockdiag似乎不吃u“”标记。给出了一个错误:C:\Projects\PAT\PyPhased\docs\simple\u pulse\u radar。rst:6:警告:不可编码的源字符,替换为“?”:““矩形波形”->“发射机”->“散热器”->“可用空间”->“目标”->“unicode”("\xCA\xf0\xe\\xeb\xe8\xea> > xe8,如果你把它添加到文件的顶部?“编码- UTF-8-”。可能需要将它添加到CON.PY中,也可以编辑:在每个破折号的中间有一个星号,我不知道为什么它没有显示我已经尝试过。没有什么变化。它看起来像Buldidig不吃U’标记。给出了一个错误:C:\Studio\pAT\PyPhased\docs\simple\u pulse\u radar.rst:6:警告:不可编码的源字符,替换为“?”:““矩形波形”->“发射机”->“散热器”->“自由空间”->“目标”->unicode("\xCa\xf0\xe\xeb\xe8\xea> > xe8,如果你把它添加到文件的顶部?“γ-编码:UTF-8-”。可能需要将它添加到CON.PY中,也可以编辑:在每一组破折号的中间有一个星号,我不知道为什么它不显示错误,源于pIL/枕头的IMADRAW.PY模块,并且我认为这个问题是相关的:o但是,您的问题的解决方案。错误源于PIL/Pillow的ImageDraw.py模块,我认为这个问题与此相关:。但是,我没有解决您问题的方案。