Pip: Erreur de codage du nom de fichier dans certains environnements avec PAX sdist

Créé le 28 janv. 2020  ·  3Commentaires  ·  Source: pypa/pip

Environnement

  • version pip: tout
  • Version Python: 2.7
  • OS: Windows, non Windows dans les paramètres régionaux C

(pip Windows CI frappe ça)

La description
Les sdists de la roue de format PAX 0.34.1 ne parviennent pas à s'installer sur Python 2.7 sous Windows avec un UnicodeEncodeError, ou sur des systèmes non Windows dans un environnement local non-utf-8: https://github.com/pypa/wheel/issues/331

Comportement prévisible
Le nom de fichier Unicode de l'archive tar PAX est correctement codé pour le système de fichiers local.

Comment reproduire
Tentative d'installation d'une archive tar au format PAX contenant un nom de fichier qui ne peut pas être encodé dans la page de codes par défaut (Windows) ou l'encodage des paramètres régionaux par défaut (non Windows).

Dans GNU tar, les chemins affectés sont pré-modifiés en quelque chose de compatible ASCII, mais PAX tar les conserve correctement, donc l'installateur doit les gérer lui-même.

Production

Voir
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=30 exemple dans un exemple Windows la suite de tests pip.

Le problème de roue lié ci-dessus a quelques exemples Linux.

python 2 only bug

Commentaire le plus utile

@johnthagen Ouais, le problème d'encodage de locale non universel que je mentionne dans https://github.com/pypa/pip/pull/7668#issuecomment -579706165 s'appliquera également à Python 3.

Cependant, la version 3.7+ l'atténue considérablement, car ils ne croient pas au système d'exploitation quand il prétend utiliser ASCII, et passent automatiquement à l'utilisation de UTF-8 à la place.

Tous les 3 commentaires

@ncoghlan Juste un FYI, le problème que j'ai noté sur https://github.com/pypa/wheel/issues/331 utilisait Python 3.6 (au cas où cela aurait une incidence ici).

Dans le processus de justification de ne pas résoudre ce problème, j'ai trouvé assez pour le réparer. :( Voir # 7668.

@johnthagen Ouais, le problème d'encodage de locale non universel que je mentionne dans https://github.com/pypa/pip/pull/7668#issuecomment -579706165 s'appliquera également à Python 3.

Cependant, la version 3.7+ l'atténue considérablement, car ils ne croient pas au système d'exploitation quand il prétend utiliser ASCII, et passent automatiquement à l'utilisation de UTF-8 à la place.

Cette page vous a été utile?
0 / 5 - 0 notes