Meio Ambiente
(pip Windows CI atinge isso)
Descrição
A roda de formato PAX 0.34.1 sdists falha ao instalar no Python 2.7 no Windows com um UnicodeEncodeError ou em sistemas não Windows em um local não utf-8: https://github.com/pypa/wheel/issues/331
Comportamento esperado
O nome de arquivo Unicode do tarball PAX está codificado corretamente para o sistema de arquivos local.
Como reproduzir
Tente instalar um tarball formatado em PAX contendo um nome de arquivo que não pode ser codificado na página de código padrão (Windows) ou na codificação local padrão (não Windows).
No GNU tar, os caminhos afetados são pré-mutilados para algo compatível com ASCII, mas o PAX tar os preserva corretamente, então o instalador precisa tratá-los sozinho.
Resultado
Vejo
https://dev.azure.com/pypa/pip/_build/results?buildId=18040&view=logs&j=404e6841-f5ba-57d9-f2c8-8c5322057572&t=0219f6bf-240d-5b08-c877-377 exemplob12af5079&l=309 para Windows a o conjunto de testes pip.
O problema da roda relacionado acima tem alguns exemplos do Linux.
@ncoghlan Apenas para https://github.com/pypa/wheel/issues/331 estava usando Python 3.6 (no caso de ter alguma relação aqui).
No processo de justificar o não conserto, descobri o suficiente para consertar. :( Consulte # 7668.
@johnthagen Sim, o problema de codificação de localidade não universal que menciono em https://github.com/pypa/pip/pull/7668#issuecomment -579706165 também aplicará o Python 3.
No entanto, o 3.7+ o atenua significativamente, já que eles não acreditam no sistema operacional quando ele afirma estar usando ASCII e, em vez disso, passam a usar UTF-8 automaticamente.
Comentários muito úteis
@johnthagen Sim, o problema de codificação de localidade não universal que menciono em https://github.com/pypa/pip/pull/7668#issuecomment -579706165 também aplicará o Python 3.
No entanto, o 3.7+ o atenua significativamente, já que eles não acreditam no sistema operacional quando ele afirma estar usando ASCII e, em vez disso, passam a usar UTF-8 automaticamente.