Pip: 在某些环境中使用PAX sdist的文件名编码错误

创建于 2020-01-28  ·  3评论  ·  资料来源: pypa/pip

环境

  • 点子版本:任何
  • Python版本:2.7
  • 操作系统:Windows,非Windows在C语言环境中

(pip Windows CI命中此)

描述
PAX格式转盘0.34.1 sdists无法在具有UnicodeEncodeError的Windows上的Python 2.7上或在非utf-8语言环境的非Windows系统上安装: https :

预期行为
来自PAX压缩包的Unicode文件名已正确编码为本地文件系统。

如何繁殖
尝试安装PAX格式的tarball,其中包含无法编码为默认代码页(Windows)或默认语言环境编码(非Windows)的文件名。

在GNU tar中,受影响的路径已预先映射为与ASCII兼容的某种东西,但是PAX tar可以正确保留它们,因此安装程序需要自己处理它们。

输出量

看到
https://dev.azure.com/pypa/pip/_build/results?buildId=18040&view=logs&j=404e6841-f5ba-57d9-f2c8-8c5322057572&t=0219f6bf-240d-5b08-c877-377b12af5079&l=309用于Windows中的示例点测试套件。

上面链接的转轮问题有一些Linux示例。

python 2 only bug

最有用的评论

@johnthagen是的,我在https://github.com/pypa/pip/pull/7668#issuecomment -579706165中提到的非通用语言环境编码问题也将适用于Python 3。

但是3.7+可以大大减轻它的负担,因为当他们声称使用ASCII时,他们不相信该操作系统,而是自动切换为使用UTF-8。

所有3条评论

@ncoghlan仅供参考,我在https://github.com/pypa/wheel/issues/331上指出的问题是使用Python 3.6(以防万一)。

在证明不解决此问题的过程中,我想出了足够的方法来解决它。 :(参见#7668。

@johnthagen是的,我在https://github.com/pypa/pip/pull/7668#issuecomment -579706165中提到的非通用语言环境编码问题也将适用于Python 3。

但是3.7+可以大大减轻它的负担,因为当他们声称使用ASCII时,他们不相信该操作系统,而是自动切换为使用UTF-8。

此页面是否有帮助?
0 / 5 - 0 等级