Python 包名称(在 pypi 上)可以包含分音符/“变音符号”吗?

问题描述 投票:0回答:2

Python 包名称可以包含变音符号,即“ä”、“ü”或“ö”吗?是否存在限制和差异(编码、操作系统、Python 2 与 3)?

https://en.wikipedia.org/wiki/Diaeresis_(变音符号)

python unicode pip easy-install pypi
2个回答
3
投票

Python 2.x 不允许使用字母、数字和下划线以外的任何字符。

Python 3.x 支持更多的字符,包括元音变音和其他带有变音符号的字母。但是,不建议在标识符名称中使用特殊字符。这可能会使其他用户难以使用您的软件包或读取您的标识符名称。

https://www.python.org/dev/peps/pep-3131/

https://www.dcl.hpi.uni-potsdam.de/home/loewis/table-3131.html


0
投票

当前接受的答案谈到“标识符名称”。事实上,我亲自测试过使用一些有趣的 Unicode(日语单词等)作为本地模块名称; Python 的导入系统(从版本 3.10 开始)似乎可以很好地处理它们。

但是,PyPI 上的分发包名称受到更严格的规范化规则的约束,每个 PyPA 标准:

有效的非标准化名称

有效名称仅由 ASCII 字母和数字、句点、下划线和连字符组成。它必须开始并且 以字母或数字结尾。这意味着有效的项目名称是 仅限于那些匹配以下正则表达式的内容(运行

re.IGNORECASE
):

^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$
© www.soinside.com 2019 - 2024. All rights reserved.