Umgebung
(pip Windows CI trifft dies)
Beschreibung
Das PAX-Formatrad 0.34.1 sdists kann unter Python 2.7 unter Windows mit einem UnicodeEncodeError oder auf Nicht-Windows-Systemen in einem Nicht-utf-8-Gebietsschema nicht installiert werden: https://github.com/pypa/wheel/issues/331
Erwartetes Verhalten
Der Unicode-Dateiname vom PAX-Tarball ist für das lokale Dateisystem korrekt codiert.
Wie zu reproduzieren
Versuchen Sie, einen PAX-formatierten Tarball zu installieren, der einen Dateinamen enthält, der nicht in die Standardcodepage (Windows) oder die Standardcodierung des Gebietsschemas (Nicht-Windows) codiert werden kann.
In GNU tar werden die betroffenen Pfade auf etwas ASCII-kompatibles vorab entstellt, aber PAX tar bewahrt sie korrekt auf, sodass das Installationsprogramm sie selbst verarbeiten muss.
Ausgabe
Sehen
https://dev.azure.com/pypa/pip/_build/results?buildId=18040&view=logs&j=404e6841-f5ba-57d9-f2c8-8c5322057572&t=0219f6bf-240d-5b08-c877-377b30af979 die Pip-Testsuite.
Das oben verlinkte Radproblem enthält einige Linux-Beispiele.
@ncoghlan Nur zu https://github.com/pypa/wheel/issues/331 festgestellt habe, war die Verwendung von Python 3.6 (falls dies hier einen Einfluss hat).
Während ich rechtfertigte, dies nicht zu beheben, fand ich genug heraus, um es zu beheben. :( Siehe # 7668.
@johnthagen Ja, das nicht universelle Codierungsproblem für das Gebietsschema, das ich in https://github.com/pypa/pip/pull/7668#issuecomment -579706165 erwähne, wird auch Python 3 anwenden.
3.7+ mildern es jedoch erheblich, da sie dem Betriebssystem nicht glauben, wenn es behauptet, ASCII zu verwenden, und stattdessen automatisch auf UTF-8 umsteigen.
Hilfreichster Kommentar
@johnthagen Ja, das nicht universelle Codierungsproblem für das Gebietsschema, das ich in https://github.com/pypa/pip/pull/7668#issuecomment -579706165 erwähne, wird auch Python 3 anwenden.
3.7+ mildern es jedoch erheblich, da sie dem Betriebssystem nicht glauben, wenn es behauptet, ASCII zu verwenden, und stattdessen automatisch auf UTF-8 umsteigen.