Python 包名称可以包含变音符号,即“ä”、“ü”或“ö”吗?是否存在限制和差异(编码、操作系统、Python 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
当前接受的答案谈到“标识符名称”。事实上,我亲自测试过使用一些有趣的 Unicode(日语单词等)作为本地模块名称; Python 的导入系统(从版本 3.10 开始)似乎可以很好地处理它们。
但是,PyPI 上的分发包名称受到更严格的规范化规则的约束,每个 PyPA 标准:
有效的非标准化名称
有效名称仅由 ASCII 字母和数字、句点、下划线和连字符组成。它必须开始并且 以字母或数字结尾。这意味着有效的项目名称是 仅限于那些匹配以下正则表达式的内容(运行
):re.IGNORECASE
^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$