Pip: Kesalahan pengkodean nama file di beberapa lingkungan dengan PAX sdist

Dibuat pada 28 Jan 2020  ·  3Komentar  ·  Sumber: pypa/pip

Lingkungan Hidup

  • versi pip: apa saja
  • Versi Python: 2.7.0
  • OS: Windows, non-Windows dalam bahasa C.

(pip Windows CI mengenai ini)

Deskripsi
Roda format PAX 0.34.1 sdists gagal untuk diinstal pada Python 2.7 pada Windows dengan UnicodeEncodeError, atau pada sistem non-Windows di lokasi non-utf-8: https://github.com/pypa/wheel/issues/331

Perilaku yang diharapkan
Nama file unicode dari tarball PAX dikodekan dengan benar untuk sistem file lokal.

Bagaimana cara bereproduksi
Mencoba menginstal tarball berformat PAX yang berisi nama file yang tidak dapat dikodekan ke halaman kode default (Windows) atau pengkodean lokal default (non-Windows).

Dalam tar GNU, jalur yang terpengaruh telah diubah menjadi sesuatu yang kompatibel dengan ASCII, tetapi tar PAX menyimpannya dengan benar, sehingga penginstal perlu menanganinya sendiri.

Keluaran

Lihat
https://dev.azure.com/pypa/pip/_build/results?buildId=18040&view=logs&j=404e6841-f5ba-57d9-f2c8-8c5322057572&t=0219f6bf-240d-5b08-c877-377b12af5079 untuk a&l=30 contoh di Windows rangkaian pengujian pip.

Masalah roda yang ditautkan di atas memiliki beberapa contoh Linux.

python 2 only bug

Komentar yang paling membantu

@johnthagen Ya, masalah pengkodean lokal non-universal yang saya sebutkan di https://github.com/pypa/pip/pull/7668#issuecomment -579706165 akan menerapkan Python 3 juga.

Namun 3.7+ menguranginya secara signifikan, karena mereka tidak mempercayai OS saat mengklaim menggunakan ASCII, dan secara otomatis beralih menggunakan UTF-8.

Semua 3 komentar

@ncoghlan Hanya FYI, masalah yang saya catat di https://github.com/pypa/wheel/issues/331 menggunakan Python 3.6 (jika ada kaitannya di sini).

Dalam proses membenarkan tidak memperbaiki ini, saya cukup menemukan cara untuk memperbaikinya. :( Lihat # 7668.

@johnthagen Ya, masalah pengkodean lokal non-universal yang saya sebutkan di https://github.com/pypa/pip/pull/7668#issuecomment -579706165 akan menerapkan Python 3 juga.

Namun 3.7+ menguranginya secara signifikan, karena mereka tidak mempercayai OS saat mengklaim menggunakan ASCII, dan secara otomatis beralih menggunakan UTF-8.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat