Python-future: تم كسر الاستيراد المدمج في الإصدار 0.17.0

تم إنشاؤها على ٢٦ أكتوبر ٢٠١٨  ·  14تعليقات  ·  مصدر: PythonCharmers/python-future

يؤدي استيراد العناصر المضمنة في الإصدار 0.17.0 إلى حدوث خطأ.

>>> import builtins
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named builtins
>>>

التعليق الأكثر فائدة

لدينا نفس المشكلة ، ولكن المثير للاهتمام ، إذا قمنا بالتثبيت بدون ذاكرة تخزين مؤقت dir ، فإنه يعمل ...

pip install -U --force   future
>>> import builtins
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named builtins
>>>
pip install -U --force  --no-cache-dir future
>>> import builtins
>>>

ال 14 كومينتر

لدينا نفس المشكلة هنا.

تحاول الإشارة إلى أصل المشكلة ، لكن لم يتضح بعد.

لدينا نفس المشكلة ، ولكن المثير للاهتمام ، إذا قمنا بالتثبيت بدون ذاكرة تخزين مؤقت dir ، فإنه يعمل ...

pip install -U --force   future
>>> import builtins
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named builtins
>>>
pip install -U --force  --no-cache-dir future
>>> import builtins
>>>

على نظام التشغيل Windows ، إزالة المستقبل المخزن مؤقتًا 0.17.0 whl من C: \ Users \\ AppData \ Local \ pip ثم إعادة تثبيت الحزمة لإصلاحها.

لذلك يبدو (إنها نظرية) مثل النشر السابق لـ 0.17.0 قد تم كسره ، ولكن تم إصلاحه الآن.

jmadler أخبرنا بما حدث ، نود أن نفهم السياق.

أخبرني من فضلك ألم تقم ببناء عجلة future باستخدام Python-3 وحاولت استخدامها مع Python-2؟ إذا كان الأمر كذلك ، فقد يكون هذا هو سبب المشكلة.

حسنًا ، إذا تم بناء عجلة المستقبل بواسطة python 3 ، تم تخزينها مؤقتًا على أنها عالمية ، ثم تم استردادها بواسطة python 2 من ذاكرة التخزين المؤقت ، فقد يكون ذلك.

آسف يا رفاق! هذا هو التوزيع الأول لي لهذه الحزمة المعينة (و PyPI أيضًا ...)

عندما قمت بإنشاء الإصدار ، قمت بتشغيل python setup.py sdist باستخدام Py3 ، واختبرت pip install dist/future-0.17.0.tgz على كل من Py2 و Py3 وتحققت من تثبيته عبر تلك الآلية. لقد أجريت التحقق من التثبيت عن طريق اختبار عدد قليل من عمليات الاستيراد و dir () على REPL للبناء ، و reprlib ، والمستقبل

بمجرد التحقق من صحتها ، قمت بتشغيل twine upload dist/future-0.17.0.tgz لإحضاره إلى PyPI.

pip2 --version && pip3 --version :

نقطة 10.0.1 من /usr/local/lib/python2.7/site-packages/pip (python 2.7)
نقطة 18.0 من /usr/local/lib/python3.7/site-packages/pip (python 3.7)

الاحتمال الآخر هو أن عجلة bdist_wheel المحلية مبنية على Py3 وتخزينها مؤقتًا في مكان ما ومعاملتها على أنها عالمية (عندما لا تكون كذلك) ، لكنني لم أحمل عجلة إلى PyPI.

أنا غير قادر على إعادة النسخ في venv فارغ باستخدام pip install future==0.17.0 لـ Py2 و Py3 على جهاز macOS الخاص بي.

هل من الممكن أن تقوم PyPI بإعادة كتابة الحزمة بطريقة ما؟ أو ربما تغير سلوك النقطة؟

على نظام التشغيل Windows ، إزالة المستقبل المخزن مؤقتًا 0.17.0 whl من C: \ Users\ AppData \ Local \ pip ثم إعادة تثبيت الحزمة لإصلاحها.

لذلك يبدو (إنها نظرية) مثل النشر السابق لـ 0.17.0 قد تم كسره ، ولكن تم إصلاحه الآن.

أعتقد أيضا. ربما يمكن لشخص ما إصدار 0.17.1 مع الإصلاح)

في الواقع ، إذا تم تثبيت الحزمة عبر py3 ، فسيتم تخزينها مؤقتًا في ذاكرة التخزين المؤقت المحلية للنقطة. أي عمليات تثبيت مستقبلية لـ future (beit py2 أو py3) ستستخدم هذه النسخة المخبأة باعتبارها عالمية مميزة.

ومع ذلك ، فإن setup.py https://github.com/PythonCharmers/python-future/blob/master/setup.py#L61 يحتوي على هذا الشرط الذي يجعل العجلة التي تم إنشاؤها (الآن في ذاكرة التخزين المؤقت للنقطة) غير متوافقة مع py2 (منذ ذلك الحين) تم بناؤه من أجل py3). أتخيل أنه إذا تم إنشاء العجلة عبر py2 ، فقد يعني ذلك خبرًا سيئًا لتثبيت py3.

jmadler تمت معالجة المشكلة في master ، والشيء الوحيد المتبقي هو دمج PR # 404 وإصدار v0.17.1

في الوقت الحالي ، مع الإصدار 0.17.0 ، فإن أي مستخدم يستخدم كلاً من Py2 و Py3 على أجهزته معرض لخطر الحصول على ذاكرة تخزين مؤقت لعجلة النقطة السيئة ويواجه هذا الخطأ.

هل من الممكن الحصول على إبراء في أسرع وقت ممكن؟ إذا كان لديك أي أسئلة / مخاوف ، اسألها ، يسعدني تقديم المساعدة 😃

يبدو جيدًا ، لقد أصدرت 0.17.1 مع تضمين # 399 و # 404. هل يمكنك إلقاء نظرة وإخباري إذا كان يعالج هذه المشكلة من أجلك؟

A1 - ثابت.

خطوات:

1) قم بتدوير جهاز يعمل بنظام Windows 10 مع تثبيت Python 3.6 و Python 2.7

2) نقطة تثبيت مستقبلية في سياق Python 3.6 - تأكد من أن العجلة مبنية ومخزنة مؤقتًا
التثبيت المستقبلي للنقطة py -3.6 -m
العجلة المخبأة: Future-0.17.1-cp36-none-any.whl

3) تثبيت نقطة في المستقبل في سياق Python 2.7 - تأكد من بناء العجلة مرة أخرى وعدم استخدام النسخة المخبأة من الخطوة 2)
مستقبل تثبيت py -2.7 -m نقطة
العجلة المخبأة: Future-0.17.1-cp27-none-any.whl

4) في جلسة Python 2 ، قم باستيراد عناصر مدمجة ولا تحدث أخطاء
الحمر -2.7
Python 2.7.8 (افتراضي ، 30 حزيران (يونيو) 2014 ، 16:03:49) [MSC v.1500 32 بت (Intel)] على win32
اكتب "مساعدة" أو "حقوق طبع ونشر" أو "ائتمانات" أو "ترخيص" لمزيد من المعلومات.

استيراد البنايات

بالمقارنة ، كان لدى 0.17.0 هذه العجلة المفردة: Future-0.17.0-py2.py3-none-any.whl

واجهت هذه المشكلة مع 0.17.0 ويمكنني أن أؤكد أن 0.17.1 أصلحها.

سعيد لسماعها!

شكرًا جيل وفنسنت وآخرون. لقد كان توجيهك مفيدًا للغاية :)

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات