Python中文
首页
教程
问答
标签
搜索
登录
注册
在中使用Unicode元数据的正确方法是什么setup.py?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我在写一篇设置.py对于使用setuptools并希望在long_description字段中包含非ASCII字符的Python包:</p> <pre><code>#!/usr/bin/env python from setuptools import setup setup(... long_description=u"...", # in real code this value is read from a text file ...) </code></pre> <p>不幸的是,将unicode对象传递给setup()会中断以下两个命令中的任何一个,并显示UnicodeEncodeError</p> ^{pr2}$ <p>如果在long_description字段中使用原始UTF-8字符串,则以下命令将以UnicodeDecodeError中断:</p> <pre> python setup.py register </pre> <p>我通常通过运行“python”来发布软件设置.pysdist register upload“,这意味着丑陋的黑客系统argv传递正确的对象类型。在</p> <p>最后,我放弃了,实施了另一种丑陋的黑客攻击:</p> <pre><code>class UltraMagicString(object): # Catch-22: # - if I return Unicode, python setup.py --long-description as well # as python setup.py upload fail with a UnicodeEncodeError # - if I return UTF-8 string, python setup.py sdist register # fails with an UnicodeDecodeError def __init__(self, value): self.value = value def __str__(self): return self.value def __unicode__(self): return self.value.decode('UTF-8') def __add__(self, other): return UltraMagicString(self.value + str(other)) def split(self, *args, **kw): return self.value.split(*args, **kw) ... setup(... long_description=UltraMagicString("..."), ...) </code></pre> <p>难道没有更好的方法吗?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您需要将unicode长描述<code>u"bläh bläh bläh"</code>更改为普通字符串<code>"bläh bläh bläh"</code>,并添加一个编码头作为文件的第二行:</p> <pre><code>#!/usr/bin/env python # encoding: utf-8 ... ... </code></pre> <p>显然,你也需要用UTF-8来保存文件。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
2 回答
无法使用Django\u mssql\u后端迁移到外部hos
8 回答
无法使用Django&Python3.4连接到MySql
2 回答
无法使用Django+nginx上载媒体文件
8 回答
无法使用Django1.6导入名称模式
10 回答
无法使用Django1.7和mongodb登录管理站点
9 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
6 回答
无法使用Djangockedi验证CBV中的字段
2 回答
无法使用Djangocketditor上载图像(错误400)
2 回答
无法使用Djangocron进行函数调用
10 回答
无法使用Djangofiler djang上载文件
9 回答
无法使用Djangokronos
8 回答
无法使用Djangomssql provid
7 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
9 回答
无法使用Djangomssq迁移Django数据库
2 回答
无法使用Djangonox创建用户
1 回答
无法使用Djangopyodb从Django查询SQL Server
5 回答
无法使用Djangopython3ldap连接到ldap
6 回答
无法使用Djangoredis连接到redis
6 回答
无法使用Django中的FK创建新表
1 回答