Pip: خطأ في ترميز اسم الملف في بعض البيئات مع PAX sdist

تم إنشاؤها على ٢٨ يناير ٢٠٢٠  ·  3تعليقات  ·  مصدر: pypa/pip

بيئة

  • إصدار النقطة: أي
  • إصدار بايثون: 2.7
  • نظام التشغيل: Windows ، وليس Windows في لغة C.

(نقطة Windows CI تصل إلى هذا)

وصف
تفشل عجلة تنسيق PAX 0.34.1 في التثبيت على Python 2.7 على Windows مع UnicodeEncodeError ، أو على أنظمة بخلاف Windows في لغة غير utf-8: https://github.com/pypa/wheel/issues/331

سلوك متوقع
تم ترميز اسم ملف Unicode من تار PAX بشكل صحيح لنظام الملفات المحلي.

كيفية التكاثر
حاول تثبيت كرة مضغوطة بتنسيق PAX تحتوي على اسم ملف لا يمكن ترميزه إلى صفحة الرموز الافتراضية (في Windows) أو ترميز الإعدادات المحلية الافتراضية (بخلاف نظام Windows).

في GNU tar ، تكون المسارات المتأثرة مشوهة مسبقًا إلى شيء متوافق مع ASCII ، لكن tar تحافظ عليها بشكل صحيح ، لذلك يحتاج المثبت إلى معالجتها بنفسه.

انتاج |

نرى
https://dev.azure.com/pypa/pip/_build/results؟ مجموعة اختبار النقطة.

تحتوي مشكلة العجلة المرتبطة أعلاه على بعض أمثلة 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 التقييمات