Pip: لا يحتوي كائن _NamespacePath على فرز سمة

تم إنشاؤها على ٥ يناير ٢٠١٧  ·  99تعليقات  ·  مصدر: pypa/pip

  • إصدار النقطة: 9.0.1
  • إصدار Python: 3.6
  • نظام التشغيل: macOS

يبدو أن نقطة عن طريق بيع Setuptools تؤدي إلى تشغيل المشكلة التي تم الإبلاغ عنها في pypa / setuptools # 885 (ومن المحتمل أن تكون متورطة في التقارير المستمرة للمستخدمين الذين يواجهون المشكلة). إليك عملية التتبع التي تحدث عندما يتم استدعاء pip freeze بواسطة tox أثناء تشغيل اختباري بعد إكمال الخطوة develop-inst-no-deps .

Traceback (most recent call last):
  File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/bin/pip", line 7, in <module>
    from pip import main
  File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/__init__.py", line 26, in <module>
    from pip.utils import get_installed_distributions, get_prog
  File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/utils/__init__.py", line 27, in <module>
    from pip._vendor import pkg_resources
  File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3018, in <module>
    <strong i="13">@_call_aside</strong>
  File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3004, in _call_aside
    f(*args, **kwargs)
  File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3046, in _initialize_master_working_set
    dist.activate(replace=False)
  File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2578, in activate
    declare_namespace(pkg)
  File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2152, in declare_namespace
    _handle_ns(packageName, path_item)
  File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2092, in _handle_ns
    _rebuild_mod_path(path, packageName, module)
  File "/Users/jaraco/Dropbox/code/yg/support/yg.piistore/.tox/python/lib/python3.6/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2121, in _rebuild_mod_path
    orig_path.sort(key=position_in_sys_path)
AttributeError: '_NamespacePath' object has no attribute 'sort'

أتخيل أن الإصلاح الوحيد هو إعادة بيع أدوات setuptools مع 31.0.1 أو أحدث.

crash setuptools vendored dependency auto-locked

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

لقد جربت هذه الحيل ، وبقدر ما لم ينجح شيء حتى الآن ، فإليك إصلاحي المتين والمفيد:
في /path/to/usr/local/python3.5/dist-packages/ ، للملف pip/_vendor/pkg_resources/__init__.py ، السطر 2121 ، التغيير:

orig_path.sort(key=position_in_sys_path)

مع

try:
    orig_path.sort(key=position_in_sys_path)
except AttributeError:
    print("BUG: Is it bad if orig_path is not sorted correctly?")

ال 99 كومينتر

لقد لاحظت وجود خطأ في البرنامج النصي setup.py. كان لاسم الحزمة "هيكل عظمي" كامن للاسم بدلاً من اسم المشروع الصحيح. بعد تصحيح ذلك ، اختفت المشكلة ، على الأرجح لأن اسم المشروع الصحيح yg.piistore يظهر بترتيب فرز مختلف عن skeleton . ومع ذلك ، أظن أن هذه المشكلة ستكون موجودة لبعض المستخدمين اعتمادًا على ترتيب الحزم وأسماءها وتبعياتها.

ربما لا يتم تشغيل هذه المشكلة إلا إذا كانت الحزمة التي يتم تثبيتها عبارة عن حزمة بدون مساحة اسم ولكنها تعتمد على حزم مساحة الاسم.

حصلت على نفس الخطأ ( '_NamespacePath' object has no attribute 'sort' ). آمل أن تكون التفاصيل التالية للإعداد الخاص بي مفيدة بعض الشيء.

  • إصدار النقطة: 9.0.1
  • إصدار Python: 3.5
  • إصدار Setuptools: 32.3.1
  • نظام التشغيل: Ubuntu 16.04

هناك ثلاث حزم قيد التشغيل (على الرغم من أن الحزمة الأولى قد لا تكون مهمة). لقد قمت بإخفاء هويتي أسماء الحزم.

  • acme.foo : هذا موجود في دليل على القرص الثابت لدي ، لذا فهذه كلها مسارات صالحة:

    • /path/to/acmefoo/ هو جذر المشروع

    • /path/to/acmefoo/acme/foo على الكود المصدري للحزمة

    • /path/to/acmefoo/acme/__init__.py (فقط) على النص: __import__('pkg_resources').declare_namespace(__name__)

    • /path/to/acmefoo/setup.py يتضمن packages=["acme", "acme.foo"], namespace_packages=["acme"] (وبالطبع يستخدم setuptools ، وليس distutils ).

  • acme.bar : هذا مشابه ، بالإضافة إلى أن setup.py يحتوي على entrypoints={'console_scripts': ['ac_bar = acme.bar.main:main']} (على الرغم من أن إزالة هذا ليس ضروريًا لإعادة الإنتاج).
  • acme.baz : هذا مشابه باستثناء أنه لا يحتوي على setup.py .

لقد قمت بتثبيت acme.foo و acme.bar مباشرة عن طريق تشغيل eg pip install /path/to/acmefoo/ . ثم قمت بتغيير دليل العمل الحالي إلى acme.baz ، وتشغيل pip freeze أو ac_bar يعطي الخطأ.

بعض النقاط الاضافية:

  • يؤدي حذف /path/to/acmebaz/acme/__init__.py (أي الحزمة التي لم تكن pip install ed) إلى إيقاف حدوث الخطأ.
  • لا يؤدي إجراء هذا الإجراء بالكامل باستخدام setuptools==28.0.0 إعادة إظهار الخطأ.
  • إذا قمت بتثبيت acme.foo و acme.bar مع setuptools==32.3.1 ، فقم بالرجوع إلى setuptools==28.0.0 ، ثم قم بتشغيل pip freeze في /path/to/acmebaz ، I DO الحصول على خطأ. إذن ما هو مهم هو إصدار setuptools المستخدم لتثبيت pip ، وليس الإصدار النشط حاليًا.

إذا قمت بالتثبيت ، ثم قم بالرجوع إلى إصدار أقدم من أدوات الإعداد ، ثم قم بتشغيل تجميد النقطة ، فأنا أحصل على الخطأ.

يكاد يكون من المؤكد أن هذا السلوك ينطوي على التغييرات في Setuptools v31 لـ pypa / setuptools # 250. على وجه الخصوص ، قام https://github.com/pypa/setuptools/commit/7e25fd910d1ff5259c0768d3b54a9bf03bce4279 بتحديث طريقة إنشاء ملفات nspkg-pth - هذا هو المكان الذي يتم فيه إنشاء كائنات _NamespacePath .

ولكن فقط في Setuptools 31.0.1 حيث تمت معالجة الخطأ sort في pkg_resources . ومع ذلك ، كما ترى في traceback الخاص بي ، فإن الخطأ يحدث في النسخة الموردة من pkg_resources ، والتي لا تحتوي على هذا الإصلاح حتى الآن.

الأمر المثير للاهتمام والذي لم أفهمه حتى الآن هو لماذا يؤدي حذف إعلان حزمة مساحة الاسم من acme (لـ baz) إلى إيقاف الخطأ. لست متأكدًا مما يحدث هناك ، لكن من المحتمل أن الأمر يستحق المزيد من التحقيق.

إصدار Python Python 3.6.0b2
إصدار Pip 9.0.1
نظام التشغيل Ubuntu 16.10 (4.9.0-1.1-Liquorix-amd64 # 1 ZEN SMP PREEMPT LIQUORIX 4.9-3 (2017/01/07) x86_64 x86_64 x86_64 GNU / Linux)

`` Traceback (آخر مكالمة أخيرة):
ملف "/usr/lib/python3.6/runpy.py" ، السطر 183 ، في _run_module_as_main
mod_name، mod_spec، code = _get_module_details (mod_name، _Error)
ملف "/usr/lib/python3.6/runpy.py" ، السطر 142 ، في _get_module_details
إرجاع _get_module_details (pkg_main_name ، خطأ)
ملف "/usr/lib/python3.6/runpy.py" ، السطر 109 ، في _get_module_details
__import __ (pkg_name)
ملف "/usr/local/lib/python3.6/dist-packages/pip/__init__.py" ، السطر 26 ، في
من pip.utils استيراد get_installed_distributions ، get_prog
ملف "/usr/local/lib/python3.6/dist-packages/pip/utils/__init__.py" ، السطر 27 ، في
من pip._vendor استيراد pkg_resources
ملف "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py" ، السطر 3018 ، في
_call_aside
ملف "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py" ، السطر 3004 ، في _call_aside
و (أرغ ، * كوارغس)
ملف "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py" ، السطر 3046 ، في _initialize_master_working_set
dist.activate (استبدال = خطأ)
ملف "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py" ، السطر 2578 ، قيد التنشيط
إعلان مساحة الاسم (pkg)
ملف "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py" ، السطر 2152 ، في إعلان_namespace
_handle_ns (اسم الحزمة ، مسار_البند)
ملف "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py" ، السطر 2092 ، في _handle_ns
_rebuild_mod_path (المسار ، اسم الحزمة ، الوحدة النمطية)
ملف "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py" ، السطر 2121 ، في _rebuild_mod_path
Orig_path.sort (مفتاح = position_in_sys_path)
AttributeError: الكائن '_NamespacePath' ليس له سمة 'Sort'
خطأ في sys.excepthook:
Traceback (آخر مكالمة أخيرة):
ملف "/usr/lib/python3/dist-packages/apport_python_hook.py" ، السطر 63 ، في apport_excepthook
من apport.fileutils import possible_packaged، get_recent_crashes
ملف "/usr/lib/python3/dist-packages/apport/__init__.py" ، السطر 5 ، في
من تقرير استيراد apport.report
ملف "/usr/lib/python3/dist-packages/apport/report.py" ، السطر 30 ، في
استيراد apport.fileutils
ملف "/usr/lib/python3/dist-packages/apport/fileutils.py" ، السطر 23 ، في
من apport.packaging_impl استيراد ضمني كحزمة
ملف "/usr/lib/python3/dist-packages/apport/packaging_impl.py" ، السطر 23 ، في
استيراد apt
ملف "/usr/lib/python3/dist-packages/apt/__init__.py" ، السطر 23 ، في
استيراد apt_pkg
ModuleNotFoundError: لا توجد وحدة باسم "apt_pkg"

الاستثناء الأصلي كان:
Traceback (آخر مكالمة أخيرة):
ملف "/usr/lib/python3.6/runpy.py" ، السطر 183 ، في _run_module_as_main
mod_name، mod_spec، code = _get_module_details (mod_name، _Error)
ملف "/usr/lib/python3.6/runpy.py" ، السطر 142 ، في _get_module_details
إرجاع _get_module_details (pkg_main_name ، خطأ)
ملف "/usr/lib/python3.6/runpy.py" ، السطر 109 ، في _get_module_details
__import __ (pkg_name)
ملف "/usr/local/lib/python3.6/dist-packages/pip/__init__.py" ، السطر 26 ، في
من pip.utils استيراد get_installed_distributions ، get_prog
ملف "/usr/local/lib/python3.6/dist-packages/pip/utils/__init__.py" ، السطر 27 ، في
من pip._vendor استيراد pkg_resources
ملف "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py" ، السطر 3018 ، في
_call_aside
ملف "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py" ، السطر 3004 ، في _call_aside
و (أرغ ، * كوارغس)
ملف "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py" ، السطر 3046 ، في _initialize_master_working_set
dist.activate (استبدال = خطأ)
ملف "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py" ، السطر 2578 ، قيد التنشيط
إعلان مساحة الاسم (pkg)
ملف "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py" ، السطر 2152 ، في إعلان_namespace
_handle_ns (اسم الحزمة ، مسار_البند)
ملف "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py" ، السطر 2092 ، في _handle_ns
_rebuild_mod_path (المسار ، اسم الحزمة ، الوحدة النمطية)
ملف "/usr/local/lib/python3.6/dist-packages/pip/_vendor/pkg_resources/__init__.py" ، السطر 2121 ، في _rebuild_mod_path
Orig_path.sort (مفتاح = position_in_sys_path)
AttributeError: الكائن '_NamespacePath' ليس له سمة 'Sort'
""

أنا أيضا أتلقى هذا الخطأ. حاولت الرجوع إلى الإصدار 28 من برنامج setuptools ولكن لم يتم حلها. أيضًا هذا الخطأ لا يظهر في Python 3.5.2. لكن الآن لاحظت أن النقطة لا تحتوي على هذا الخطأ في Heroku. لدي تطبيق Django يعمل على Python 3.6 داخل Heroku ولا يواجه أي مشاكل على الإطلاق

كان الحل بالنسبة لي هو التخلي عن حزم مساحة الاسم ؛ acme/foo أصبح الآن acme_foo . يبدو أن هناك عددًا قليلاً من حالات الركن مدفونة في أعماق بنية Python الأساسية (نقص دعم Cython / وحدة التمديد هو سبب آخر) وكان هذا هو القشة الأخيرة.

هذه المشكلة متورطة في هذه الاختبارات الفاشلة . على الرغم من أنني توقعت أعلاه أن المشكلة قد تكون معزولة عن الحزم التي لا تنتمي إلى مساحة الاسم والتي تتطلب حزم مساحة الاسم ، فإن هذا المثال لحزمة مساحة الاسم ( pmxbot.rss ) تتطلب حزمة أخرى لمساحة الاسم في نفس مساحة الاسم ( pmxbot ).

jaraco قابلت نفس السؤال ولا أعرف كيف pip لا يعمل لتثبيت كل شيء. ساعدني ! : sos:

بايثون 3.5.2
النقطة 9.0.1
Setuptools 34.2.0

>> pip3
Traceback (most recent call last):
  File "/usr/bin/pip3", line 7, in <module>
    from pip import main
  File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/__init__.py", line 26, in <module>
    from pip.utils import get_installed_distributions, get_prog
  File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/utils/__init__.py", line 27, in <module>
    from pip._vendor import pkg_resources
  File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3018, in <module>
    <strong i="15">@_call_aside</strong>
  File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3004, in _call_aside
    f(*args, **kwargs)
  File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3046, in _initialize_master_t
    dist.activate(replace=False)
  File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2578, in activate
    declare_namespace(pkg)
  File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2152, in declare_namespace
    _handle_ns(packageName, path_item)
  File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2092, in _handle_ns
    _rebuild_mod_path(path, packageName, module)
  File "/usr/local/python3.5.2/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2121, in _rebuild_mod_path
    orig_path.sort(key=position_in_sys_path)
AttributeError: '_NamespacePath' object has no attribute 'sort'

نفس الشيء هنا ، يبدو أن النقطة الخاصة بي مكسورة بنفس الخطأ. أنا أستخدم تثبيت مستخدم لـ Pip:

~ تتبع بيثونTraceback (آخر مكالمة أخيرة):ملف "/home/stavros/.local/bin/pip" ، السطر 7 ، بتنسيق




















لقد لاحظت أن هذه المشكلة ستصبح أكثر وضوحًا حيث يتم إصدار المزيد من الحزم (خاصة العجلات) باستخدام إصدارات setuptools الأحدث. لقد أجريت مزيدًا من التحليل في مشكلة المنبع ، لكن ليس لدي حل سوى تحديث pkg_resources في نقطة.

الحصول على نفس الخطأ بالمواصفات التالية:

  • سطح المكتب أوبونتو 16.10
  • apt تثبيت python3-pip
Traceback (most recent call last):
  File "/python/v3/Libraries/pip/Upgrade.py", line 4, in <module>
    import pip
  File "/home/eric/.local/lib/python3.5/site-packages/pip/__init__.py", line 26, in <module>
    from pip.utils import get_installed_distributions, get_prog
  File "/home/eric/.local/lib/python3.5/site-packages/pip/utils/__init__.py", line 27, in <module>
    from pip._vendor import pkg_resources
  File "/home/eric/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3018, in <module>
    <strong i="9">@_call_aside</strong>
  File "/home/eric/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3004, in _call_aside
    f(*args, **kwargs)
  File "/home/eric/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3046, in _initialize_master_working_set
    dist.activate(replace=False)
  File "/home/eric/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2578, in activate
    declare_namespace(pkg)
  File "/home/eric/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2152, in declare_namespace
    _handle_ns(packageName, path_item)
  File "/home/eric/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2092, in _handle_ns
    _rebuild_mod_path(path, packageName, module)
  File "/home/eric/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2121, in _rebuild_mod_path
    orig_path.sort(key=position_in_sys_path)
AttributeError: '_NamespacePath' object has no attribute 'sort'

كود Python المستخدم لترقية الحزم:

#!/usr/bin/python3
# -*- coding: utf8 -*-

import pip
import subprocess

try:
    for distribution in pip.get_installed_distributions():
        subprocess.call('python3 -m pip install --upgrade ' + distribution.project_name, shell=True)
except OSError:
    print('Permission denied')

تعمل النقطة الخاصة بي مرة أخرى بعد تثبيت conda ، راجع https://conda.io/docs/install/quick.html و https://doc.scrapy.org/en/latest/intro/install.html# أناكوندا لمحاولة.

أجد أن هذه المشكلة أصبحت أكثر انتشارًا وأصبحت قابلة للتكرار بشكل موثوق عند تشغيل pip install من دليل يحتوي على حزمة مساحة الاسم عندما يتم تثبيت الحزم الأخرى في مساحة الاسم هذه ويكون لإحدى هذه الحزم -nspkg.pth ملف

تحرير: تبين أن المشكلة التي دفعتني إلى نشر هذا تمت معالجتها مرة أخرى عن طريق تصحيح عيب في الحزمة التي يتم اختبارها.

لقد أشارنيjaraco إلى هنا حيث أن مشاكلي (# 4309) تبدو مشابهة جدًا لهذا الأمر.

ومع ذلك ، في هذه الحالة ، أحاول تثبيت حزمة مساحة الاسم (minchin.releaser) والتي تعتمد على حزمة مساحة اسم أخرى في نفس مساحة الاسم (minchin.text).

لدي نفس المشكلة تمامًا ، لكن لا داعي لتجربة أشياء معقدة ، حتى أن السؤال عن إصدار pip3 يفشل:

$ python3 /usr/local/bin/pip3 --version
Traceback (most recent call last):
  File "/usr/local/bin/pip3", line 7, in <module>
    from pip import main
  File "/usr/local/lib/python3.5/dist-packages/pip/__init__.py", line 26, in <module>
    from pip.utils import get_installed_distributions, get_prog
  File "/usr/local/lib/python3.5/dist-packages/pip/utils/__init__.py", line 27, in <module>
    from pip._vendor import pkg_resources
  File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 3018, in <module>
    <strong i="6">@_call_aside</strong>
  File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 3004, in _call_aside
    f(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 3046, in _initialize_master_working_set
    dist.activate(replace=False)
  File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2578, in activate
    declare_namespace(pkg)
  File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2152, in declare_namespace
    _handle_ns(packageName, path_item)
  File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2092, in _handle_ns
    _rebuild_mod_path(path, packageName, module)
  File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2121, in _rebuild_mod_path
    orig_path.sort(key=position_in_sys_path)
AttributeError: '_NamespacePath' object has no attribute 'sort'

حاولت إعادة التثبيت باستخدام apt-get كلاً من python3-pip و python3-setuptools ، لكنه لا يغير شيئًا.

السلوك الأكثر غرابة هو أنني إذا قمت بتنفيذ البرنامج النصي pip3 مع مترجم آخر ، على سبيل المثال ، ipython3 ، فإنه يعمل!

$ ipython3 /usr/local/bin/pip3 -- --version
pip 9.0.1 from /usr/local/lib/python3.5/dist-packages (python 3.5)

jaraco هل بيع أدوات setuptools> = 31.0.1 يصلح هذه المشكلة؟

pradyunsg في حالتي ، قام بيع setuptools 34.3.0 بإصلاحه بالنسبة لي.

نعم فعلا. انظر eaccb88.

jaraco هل هذا ماجستير؟ لا أرى إدخال التغيير ذي الصلة.

هل هناك نسخة من النقطة التي نعرف أنها موجودة قبل ظهور هذه المشكلة؟ قد يكون من المفيد أن تكون قادرًا على إبلاغ المستخدمين "بالرجوع إلى إصدار Pip XYZ حتى يتم وضع علامة على هذه المشكلة على أنها تم إصلاحها"

انظر # 4330

sudo apt-get upgrade python-setuptools

بدلا من ذلك ، حاول

sudo dpkg --get-selections | grep -E "^python" | grep install | cut -f1 | xargs apt-get --reinstall -y install

لقد جربت هذه الحيل ، وبقدر ما لم ينجح شيء حتى الآن ، فإليك إصلاحي المتين والمفيد:
في /path/to/usr/local/python3.5/dist-packages/ ، للملف pip/_vendor/pkg_resources/__init__.py ، السطر 2121 ، التغيير:

orig_path.sort(key=position_in_sys_path)

مع

try:
    orig_path.sort(key=position_in_sys_path)
except AttributeError:
    print("BUG: Is it bad if orig_path is not sorted correctly?")

هل يمكن أن يكون هناك نقطة 9.0.2 مع هذا الإصلاح فقط - إصدار أحدث من setuptools البائع؟

تتمثل إحدى طرق القيام بذلك في التفرع عن 9.0.1 ، واختيار الكرز jaraco ووضع علامة عليه 9.0.2 ، ثم تحريره والدمج مرة أخرى في الإصدار الرئيسي.

/ سم مكعبdstufftxavfernandez

Naereen قد يتسبب إسكات الخطأ في حدوث مشكلات إذا ظهر خطأ مختلف ، فمن الأفضل طباعة str(e) أيضًا

LoganDark بالطبع ، لم يكن المقصود من "الإصلاح" الخاص بي أن يتم دمجها أو استخدامها ، بالكاد يكون لديها أمر وظيفي pip أثناء انتظار حل أكثر نظافة.

تضمين التغريدة أنا فقط rm -rf ~/.local/lib/python3.6/site-packages/* وقد نجح الأمر.

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

لا يمكن أن أفعل أي شيء مع النقطة في بلدي virtualenv. حتى حصلت على الخطأ عند كتابة pip .

جعل easy_install pip في virtualenv الخاص بي قابلاً للتطبيق مرة أخرى ، على الرغم من استمرار ظهور الخطأ في نهاية التثبيت.

هل هذا في الماجستير؟

لا. كان في فرع يسمى الإصلاح العاجل / الإصدار 4216 الذي تم حذفه. يبدو أن b005a9b يحقق نفس الهدف.

هل هناك نسخة من النقطة التي نعرف أنها موجودة قبل ظهور هذه المشكلة؟

ليس صحيحا. كما ذكر أعلاه ، نشأت المشكلة عندما قدم برنامج Setuptools 31 دعمًا لـ setup.py develop على حزم مساحة الاسم ، الأمر الذي تطلب توسيع ملفات -nspkg.pth. يعني هذا التغيير بشكل أساسي أن الإصدارات القديمة من pkg_resources لم تدعم هذا التنسيق الجديد وستختنق.

من الممكن تصور وجود نسخة قديمة من النقطة التي تبيع إصدارًا قديمًا من أدوات الإعداد قبل مكان إجراء استدعاء الفرز.

هل يمكن أن يكون هناك نقطة 9.0.2 مع هذا الإصلاح فقط - إصدار أحدث من setuptools البائع؟

هذا ما اقترحته مع فرع الإصلاح العاجل الذي تم حذفه بدون تعليق. إذا كان هذا هو مشروعي ، فأنا أرغب في الحصول على حل في أقرب وقت ممكن.

تم الإبلاغ عن هذا الخطأ في هذا الموضوع. https://github.com/opencivicdata/python-opencivicdata-django/issues/80

palewire شكرًا

بعد قولي هذا ، تريد عادةً ربط الاتجاه الآخر ... لا يهم كثيرًا على الرغم من أنني أعتقد.

آسف لكوني سبامر!

حتى نتمكن من التخطيط لردنا هناك ، هل لديك أي فكرة عن متى سيتم إصلاح ذلك؟ هل هناك طريقة يمكننا من خلالها المساعدة في المضي قدمًا؟

سأحاول قطع 9.0.2 في نهاية هذا الأسبوع.

لا تقصد أن تكون مزعجًا هنا ، ولكن هل هناك أي تحديث لهذه المشكلة؟ لدي بيئة CI تستخدم tox ، وتفشل عند محاولة إنشاء python3.6. محليًا يمكنني أن أجعله يعمل عن طريق تنشيط بيئة python3.6 وتشغيل easy_install pip يدويًا. لكن لم أتمكن من العثور على حل بديل لبيئة CI.

لا يزال لديك نقطة مكسورة هنا أيضًا ولا يعمل حل Naereen في كل سيناريو (شكرًا لك على المحاولة). أي تقدم @ dstufft ؟

SOS: يا رفاق ، أنا في ورطة كبيرة ، من فضلكم ، ساعدوني! عندما حاولت تنشيط برنامج Virtualenv الخاص بي ، تلقيت أخطاء السطر الطويل:

Traceback (most recent call last): File "/anaconda/bin/conda", line 6, in <module> sys.exit(conda.cli.main()) File "/anaconda/lib/python3.6/site-packages/conda/cli/main.py", line 151, in main activate.main() File "/anaconda/lib/python3.6/site-packages/conda/cli/activate.py", line 118, in main from conda.utils import shells File "/anaconda/lib/python3.6/site-packages/conda/utils.py", line 13, in <module> from .gateways.disk.read import compute_md5sum File "/anaconda/lib/python3.6/site-packages/conda/gateways/disk/read.py", line 22, in <module> from ...models.channel import Channel File "/anaconda/lib/python3.6/site-packages/conda/models/channel.py", line 9, in <module> from ..base.context import context File "/anaconda/lib/python3.6/site-packages/conda/base/context.py", line 19, in <module> from .._vendor.auxlib.path import expand File "/anaconda/lib/python3.6/site-packages/conda/_vendor/auxlib/path.py", line 8, in <module> import pkg_resources File "<frozen importlib._bootstrap>", line 961, in _find_and_load File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 646, in _load_unlocked File "<frozen importlib._bootstrap>", line 616, in _load_backward_compatible File "/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2985, in <module> File "/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2971, in _call_aside File "/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 3013, in _initialize_master_working_set File "/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2544, in activate File "/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2118, in declare_namespace File "/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2058, in _handle_ns File "/anaconda/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2087, in _rebuild_mod_path AttributeError: '_NamespacePath' object has no attribute 'sort'

بيثون 3.6
النقطة 9.0.1
ماك 10.6

@ Mika15 سيتم إصلاح هذا في إصدار النقطة 9.0.2 المعلق

من التذكرة المرتبطة ، يمكنك اختبار أحدث رمز رئيسي:

pip install -I https://github.com/pypa/pip/archive/master.zip#egg=pip

_ ملاحظة: _ في Ubuntu ، اضطررت إلى حذف حزم موقع المستخدم الخاصة بي قبل تشغيل الأمر أعلاه ( rm -r ~/.local/lib/python3.5/site-packages )

في حالتي ، لم أتمكن من تشغيل أمر pip على الإطلاق. الحل الوحيد الذي نجح أخيرًا هو إزالة النقطة من حزم التوزيع ، ثم:

git clone https://github.com/pypa/pip.git
cd pip
python3.6 setup.py install

ثم بدأ العمل

@ cas-- هل يمكنك تقديم إشارة إلى الانتظار؟ استغرق آخر 9 إطلاق سراح طفيفة 4 أيام ؛).

نفس الخطأ على Windows ، أحاول استخدام Anaconda مع PyCharm ، يظهر الخطأ الدقيق عند إنشاء بيئة افتراضية. أعتقد أنها مشابهة لمشكلة @ Mika15 .

@ كاس - أي تحديث للإصدار 9.0.2؟

أنا لست مطورًا لهذا المشروع. كنت أشرح الموقف لمنشورات "أنا أيضًا".

تمت ترقية النقطة لإتقان pip 10.0.0.dev0 (python 3.6) لكنها ما زالت تفشل (الحزمة dvc ).
ترقية setuptools إلى 35 تحل المشكلة.

في Nixpkgs ، قمنا بحل المشكلة عن طريق تحديث pkg_resources المورّد إلى الإصدار المقدم بواسطة setuptools في 36.0.1.

نجح حل

sudo rm -r  pip 
sudo rm -r pip-9.0.1.dist-info

لقد قمت بإجراء تصحيح للنقطة 9.0.1 ، لتحديث المورّد setuptools ، والذي من شأنه إصلاح هذه المشكلة. إذا أراد أي شخص الحصول على نقطة مصححة ، فيمكنك الحصول عليها على https://github.com/pradyunsg/pip/tree/hotfix/9.0.2.

pip install --ignore-installed --pre "https://github.com/pradyunsg/pip/archive/hotfix/9.0.2.zip#egg=pip"

ملاحظة: أنا لست مطورًا أساسيًا للنقطة ، فقط شخص لديه وقت فراغ لعمل هذا التصحيح.

حصلت على نفس الخطأ على جهازي كمبيوتر من 3 ، ولكن فقط عند تحديث الحزم من pycharm 2017.1.4. من سطر الأوامر تعمل النقطة دون أي مشاكل. أنا أستعمل:

Windows 7.1 / 8.1 64 بت
Python 3.6.1 64 بت
النقطة 9.0.1
برنامج setuptools 36.0.1

أيه أفكار؟

انظر: https://youtrack.jetbrains.com/issue/PY-24682

مرحبا شباب،
أنا أعمل من أجل أطروحة البكالوريوس مع google home ، ويريد أستاذي مني إغلاق مشروعي ، وأنا أعمل على ذلك منذ أبريل. الرجاء مساعدتي ، وإلا سأحتاج إلى تأخير تخرجي لمدة ستة أشهر. لا أحد يستطيع مساعدتي حتى الآن. أتلقى هذا: AttributeError: الكائن '_NamespacePath' ليس له سمة 'Sort'
قرأت كل ما كتبته في هذه المناقشة وآخرون لديهم مشاكل ومستخدمون مشابهون. جربت كل الرموز المقترحة. ولكن تلقي دائمًا أخطاء أو خطأ في بناء الجملة أو أمر غير موجود. أنا أعمل على نظام Mac. ولكن حاولت على النوافذ والأصدقاء وحاولوا دائما نفس المشكلة. أنا سيء حقًا في البرمجة وليس لدي أي خبرة. لكني أحتاج حقًا إلى إنهاء هذا الفصل الدراسي.
لقد جربت البرامج التعليمية وفعلت كل ما فعلوه خطوة بخطوة. لكنها عملت معهم ، ولكن ليس بالنسبة لي.
screen shot 2017-06-24 at 01 59 02

من فضلك أحتاج إلى دعم ، سأكون ممتنًا حقًا. شكرا جزيلا مقدما.

@ Fouf92 هل قرأت تعليقي أعلاه؟ في ذلك ، قلت إنني لم أحصل على الخطأ إذا قمت بإنشاء بيئة افتراضية جديدة وخفضت أدوات الإعداد إلى 28.0.0 قبل تثبيت أي حزم. إذا لم تكن قد قمت بذلك بالفعل ، أقترح عليك تجربة ذلك. لا توجد ضمانات رغم ذلك!

مرحبًا @ arthur-tacca ، أنا جديد حقًا مع كل هذا. هل تسمح لي من فضلك بإعطائي خطوة بخطوة كيف أقوم باقتراحاتك التي كتبتها أعلاه من فضلك؟ لقد قرأت العديد من المنتديات وقمت بنسخ أي رمز منطقي الآن أشعر بالارتباك 🙈
سوف يساعدني حقا شكرا لك مقدما!

لقد قمت بتثبيت أحدث إصدار من picharm ، لكن ليس لدي أي فكرة عما أفعله به ، آسف 🙈

@ Fouf92 هناك عدد قليل من الحلول المدرجة في هذه المسألة.

أسهل طريقة هي تثبيت الإصدار التطويري من pip (قم بتشغيل ما يلي في Terminal ، على افتراض أن لديك git مثبتًا):

git clone https://github.com/pypa/pip.git
cd pip
python3.6 ./pip/__main__.py install .

يمكنني التحقق من أن هذا يقوم بتثبيت إصدار من النقطة يحتوي على إصلاح لهذه المشكلة.

مرحبًا pradyunsg شكرًا جزيلاً على استجابتك السريعة ومساعدتك ، وأنا أعمل على ذلك.
لقد قمت بخطوتك وقمت بتثبيت كل شيء بنجاح.
لكن عندما أقوم بتشغيل هذا الرمز:
python3 -m pip install google-assistant-sdk [عينات]

نفس المشكلة ، أنا حقًا لا أعرف ما الخطأ الذي أفعله.

إذا كان بإمكان أحدكم مساعدتي ، فيمكننا الذهاب مع عارض الفريق وتبادل جهات الاتصال التي سأكون ممتنًا لها حقًا. يريد أستاذي إغلاق رسالتي في نهاية هذا الأسبوع وسأخسر الكثير من الوقت والمال. بالنسبة لي ، هذا أمر ملح حقًا. من فضلكم يا رفاق ، وشكرا مقدما !!

screen shot 2017-06-26 at 14 12 48

مرحبًا ، هذا أنا مرة أخرى ، آسف للإزعاج مرة أخرى. قرأت كل ما قيل في الملصقات وجربت تلك الخطوات التي يقترحها الرجال ، ولكن لا تزال نفس المشكلة.
أحتاج إلى هذا: python3 -m pip install google-assistant-sdk [sample]
لكن مهما حاولت ، أتلقى دائمًا هذا ما نشرته أعلاه. الرجاء المساعدة لدي الوقت فقط حتى يوم الجمعة وإلا سأضطر إلى تأجيل تخرجي لمدة نصف عام وسأفقد عرض العمل الخاص بي في شركة جيدة حقًا ...

@ Fouf92 هذا هو اقتراحي.

1) قم بتثبيت Virtualenv. فيما يلي رابط حول كيفية تثبيته لنظام التشغيل mac: http://sourabhbajaj.com/mac-setup/Python/virtualenv.html

ينشئ Virtualenv "صندوقًا" تقوم فيه بتثبيت حزم Python. عندما تقوم بتثبيت كل شيء على نظامك مباشرة ، فإنك تخاطر بالتدخل ، وعندما يكسر شيء ما فإنه يكسر النظام.

2) خلق بيئة مثل هذه:

virtualenv --python=`which python3` myenvname

هذا يخلق بيئة بيثون 3 لك. كل ما تفعله هنا هو بيثون 3.

3) قم بتنشيط Virtualenv الخاص بك:

cd myenvname
source bin/activate

ستعرف أنك في بيئتك الافتراضية لأن جهازك الطرفي يحمل اسم Virtualenv الخاص بك بين قوسين على اليسار

(myenvname) Firass-MacBook-Pro: .....

4) pip install google-assistant-sdk[samples]

يجب تثبيت هذا بنجاح. لقد اختبرت ذلك للتو من نهايتي وليس لدي أي مشاكل.

مرحبًا RomHartmann شكرًا جزيلاً لك على

خطوتي التالية للأسف هي طريق مسدود المقبل. أعلم أنني أزعج كل الناس هنا ، لن أفعل ذلك حقًا ، إذا لم يكن من المهم جدًا بالنسبة لي أن أجعل ذلك يعمل.
هذه هي الخطوة التالية: python3 -m googlesamples.assistant.auth_helpers –client-secrets path \ to \ your \ client_secret_XXX.apps.googleusercontent.com.json

هناك عودة: لا توجد وحدة تسمى googlesamples.assistant.auth_helpers
لذلك بحثت في Google عن ذلك وجربت الخطوات المقترحة:
تثبيت نقطة - ترقية google-auth-oauthlib [أداة]
google-oauthlib-tool - مسار أسرار العميل / إلى / client_secret_XXXXX.json - نطاق https://www.googleapis.com/auth/assistant-sdk-prototype - حفظ - بدون رأس

الأول يعمل بشكل جيد ، والثاني للأسف لا. قرأت في منتدى آخر أنه إذا كان في المحطة ، يجب أن أفعل ذلك بدون - بلا رأس.

screen shot 2017-06-27 at 23 34 11

@ Fouf92 الرجاء إنشاء سؤال Stack Overflow وربطه هنا. هذا ليس المكان المناسب لمناقشة هذا.

حسنًا ، آسف وشكرًا هنا ليس السؤال الذي طرحته:
https://stackoverflow.com/q/44799488/8225350

pradyunsg شكرًا لك على التصحيح الخاص بك بينما ننتظر طرح pip master في إصدار جديد. ساعدني في الموقف (معلومات فقط في حالة ما إذا كانت تساعد الآخرين بيثون 3.5.2 w / setuptools==36.0.1 wheel==0.29.0 ).

  • نظام التشغيل Windows 7 x64
  • Python 3.6.2 إلى x64
  • النقطة 9.0.1
  • أدوات الإعداد 36.2.7

واجهت نفس المشكلة أثناء محاولة تثبيت Tensorflow عبر النقطة. كسر أحد تبعياته تثبيت النقطة تمامًا ولم أتمكن من تثبيت أو إلغاء تثبيت أي شيء باستخدام pip أو يدويًا باستخدام أدوات الإعداد

اختبرت نسخة النقطة المصححة التي

يظهر uname -a ما يلي:
Linux greenstone 4.4.0-64-generic #85~14.04.1-Ubuntu SMP Mon Feb 20 12:10:54 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

يظهر lsb_release -a ما يلي
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty

إصدارات نظام التشغيل:

  • نقطة (9.0.1)
  • أدوات الإعداد (28.8.0)
  • بايثون 2.7.6

في بيئتي الافتراضية ، صادفت مشكلة _NamespacePath object has no attribute sort .
اضطررت إلى تنشيط بيئتي الافتراضية وتحديث النقطة وأدوات الإعداد. الآن يمكنني تثبيت sphinxcontrib.youtube

بيئة افتراضية:
أظهر ما يلي: pip list

  • نقطة (9.0.1)
  • أدوات الإعداد (36.2.7)

يوضح python --version يلي:

  • بايثون 3.6.1

أفضل حل هو ترقية setuptools.
إذا لم يفلح ذلك ، فقم بتثبيت / ترقية pip و setuptools في بيئتك الافتراضية وحاول مرة أخرى.

لديك نفس الخطأ ، ترقية setuptools و pip لا يغير أي شيء ، والإصدار المصحح pip المقدم سابقًا يعطي نفس الخطأ.

لقد وجدت هذا البرنامج التعليمي وقام بحفظ مشروع التخرج الخاص بي:
https://m.youtube.com/watch؟v=EfUpOpXDdLk

هذا حل كل مشاكلي. كنت بحاجة لشراء Raspberry Pi على جهاز Mac لدي الكثير من الأخطاء ولكن مع مشاكل الراب 0. لكن جرب هذا البرنامج التعليمي ، فقد يعمل بدون Raspberry PI

أصلح تصحيح

dstufft ISTM تم "حل" هذا بواسطة # 4712. (لست متأكدًا مما إذا كنت تنتظر حتى يخرج إصدار pip لإغلاق المشكلات.)

dstufft كيف يمكنني ترقية pip و pip3 على Ubuntu 16.04 لحل هذه المشكلة؟ لقد قمت للتو بتشغيل apt update && apt upgrade دون جدوى.

فقط قم بالترقية إلى أحدث إصدار ؛

بيثون: 3.6
النقطة: 10.0.0.dev0
أدوات الإعداد: 36.7.2

jhpratt يجب طرح هذا السؤال على منتدى Ubuntu ، حيث يحتفظون بمستودعات apt . بدلاً من ذلك ، يمكنك استخدام تثبيتات virtualenv أو --user لتجاوز تثبيت النظام.

مرحبًا ، لدي نفس الخطأ على نظام التشغيل Mac OS و Python 3.5.3 و pip 9.0.1 و setuptools 38.2.3.

في الوقت الحالي ، قمت ببساطة باستبدال السطر المعيب في /anaconda/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py بواسطة كتلة محاولة / استثناء ...

فعل pip install --upgrade pip setuptools لم ينجح!

massimilianocomin المسألة هي أن pip لديها نسخة vendored من setuptools ما هو قديم. يمكنك تثبيت pip من المصدر إذا أردت. أفضل حل هو العثور على ملف easy-install.pth في دليل site-packages/ وإزالته.

dhermes شكرا لمساعدتك! لسوء الحظ ، لم تنجح إزالة easy-install.pth ، ما زلت أتلقى الخطأ عند استخدام pip .

تضمين التغريدة ثلاثة أشياء تتبادر إلى الذهن باعتبارها قضايا محتملة:

  • هناك آخر site-packages الدليل الذي pip بالبحث في أن لديها أيضا easy-install.pth (على الأرجح)
  • قد يكون هناك ملف .pth آخر به مشكلة في site-packages (احتمال أقل)
  • أدى حذف easy-install.pth إلى كسر شيء آخر (من غير المحتمل أن يكسر pip )

dhermes يوجد بالفعل آخر site-packages يقع عند .local/lib/python3.5/site-packages . إذا قمت بتشغيل الأمر find . -name '*.pth' فهناك تطابق واحد فقط: ./matplotlib-2.1.0-py3.5-nspkg.pth . هل يجب علي إزالة هذا؟

هناك أيضًا .pth في anaconda/lib/python3.5/site-packages :
./aeosa.pth
./easy-install.pth
./setuptools.pth
./Sphinx.pth

معلومات جيدة! IIUC ، فقط ملفات .pth تنتهي بـ nspkg.pth تمت إضافتها بواسطة pip وقد تؤدي الملفات الأخرى إلى إرباك / كسر pip==9.0.1

حسنًا ، لقد قمت بإزالة جميع ملفات .pth excepth matplotlib-2.1.0-py3.5-nspkg.pth ولكن ما زلت أتلقى رسالة الخطأ عند تثبيت / إلغاء تثبيت بعض الوحدات العشوائية باستخدام pip . هل يجب أن أحاول إزالة هذا الأخير أيضًا؟

massimilianocomin في هذه المرحلة ، خرجت من

dhermes شكرا لمساعدتك على أي حال. هل ستحل المشكلة إذا قمت بإعادة تثبيت التوزيع الخاص بي (conda / pip + جميع الوحدات) من scracth؟
هل لديكم أي توصيات بخصوص ما ينبغي أو لا ينبغي أن أفعله؟ (على سبيل المثال ، إصدارات من أدوات النقطة / أدوات الإعداد التي يجب تجنبها ، ..)

هل لديكم أي توصيات بشأن ما ينبغي أو لا ينبغي أن أفعله

  • يجب فقط تثبيت حزم مساحة الاسم مع pip (على سبيل المثال ، google-cloud-datastore يملأ مساحات الأسماء google و google.cloud )
  • لا يجب تثبيت حزم مساحة الاسم عبر setup.py install
  • لست متأكدًا مما سيفعله conda install لكني أعتقد أنه يستخدم setup.py install

أهلا!

اسمحوا لي أن أحاول تلخيص القضية حتى نتمكن من تجنب المزيد من كيف أفعل ذلك
ترقية الأسئلة ...

سبب هذه المشكلة هو خطأ في pkg_resources تحمل النقطة بداخلها (to
تجنب مشاكل التمهيد). هذا يعني أنه لا توجد طريقة للتغلب على هذا
مشكلة بدون تصحيح النقطة لاستخدام إصدار أحدث منه حيث يوجد هذا الخطأ
مثبت. لا توجد بدائل أخرى.

ترقية setuptools (التي توفر pkg_resources) لا تؤثر على النقطة
لأن النقطة تستخدم نسخة داخلية من pkg_resources بغض النظر.

من أعلى رأسي ، هناك مكانان على الأقل للحصول على نقطة بهما أحدث
pkg_resources:

  • النسخة الحالية قيد التطوير من النقطة.

  • يوجد فرع تم نشره في مكان أعلى في هذا الموضوع وهو في الأساس ملف
    التصحيح أعلى النقطة 9.0.1. (إخلاء المسؤولية - إنه على مفترقتي ، سأحتفظ بامتداد
    تفرع لمدة شهر على الأقل بعد الإصدار الرئيسي التالي للنقطة)

هذه ليست الأماكن الوحيدة. أعلم أن هناك المزيد والأطراف المعنية
لو نشر تعليقًا على هذا الموضوع ، على الأرجح.

للتثبيت من أيٍّ مما سبق على نظامك ، فإن الأمر يتعلق بامتداد
ترقية حزمة من التحكم في المصدر. يمكنك قراءة المستندات لذلك ،
حق؟ ؛)

إذا كنت أتذكر بشكل صحيح ، فهو نقطة تثبيت git +@فرع

وأعتقد أن الأمر يتعلق بذلك. نقطة التصحيح لاستخدام pkg_resources أحدث و
ستكون على ما يرام.

ملاحظة: إنها الثانية صباحًا. يجب أن أنام.

في الثلاثاء ، 28 نوفمبر 2017 ، الساعة 21:52 ، كتب mcomin ، [email protected] :

مرحبًا ، لدي نفس الخطأ في نظام التشغيل Mac OS و Python 3.5.3 و pip 9.0.1 و
برنامج setuptools 38.2.3.

في الوقت الحالي ، أقوم ببساطة باستبدال الخط الخاطئ في
/anaconda/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py
من خلال كتلة محاولة / استثناء ...

القيام بتثبيت نقطة - لم تنجح أدوات إعداد نقطة الترقية!

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/pypa/pip/issues/4216#issuecomment-347578070 ، أو كتم الصوت
الخيط
https://github.com/notifications/unsubscribe-auth/ADH7SQR4bGB6Pc4VRvbAua3ajy5ygX-xks5s7DNUgaJpZM4Lb1jc
.

أعتقد أن النقطة لديها عملية موثقة لتخصيص التبعية . وكنت سأقترح أن تستخدم هذه العملية لتصميم pkg_resources ، لكنني الآن أرى أنه اقتراح كل شيء أو لا شيء ... لذلك لا يمكنك ببساطة توفير أدوات devendor setuptools. أعتقد أنك عالق في ترقيع النسخة المباعة أو تحريف كل شيء.

يوم الأربعاء ، 29 نوفمبر 2017 ، 03:06 جايسون آر كومبس ، [email protected]
كتب:

أعتقد أن النقطة لديها عملية موثقة لتخصيص التبعية
https://github.com/pypa/pip/blob/master/src/pip/_vendor/README.rst#debundling .
وكنت سأقترح أن تستخدم هذه العملية للتخلص
pkg_resources ، لكنني الآن أرى أنه اقتراح كل شيء أو لا شيء ... لذلك
لا يمكنك ببساطة توفير أدوات إعداد devendor. أعتقد أنك عالق في الترقيع
النسخة المباعة أو devendoring كل شيء.

في الواقع ، إنه نهج الكل أو لا شيء.

IIRC ، إنه شبه مدعوم بمعنى أنه لا يوجد ضمان لذلك
سوف يعمل devendoring خارج الصندوق - وسوف ، في كثير من الحالات ،
ولكن هناك بالتأكيد حالات متطرفة تؤدي إلى بعض الحالات الغريبة للغاية
سلوك. هذا يجعلني أعتقد أن التفكك يعني أكثر بالنسبة لشخص ما
مثل الموزع النهائي (مثل دبيان) الذي يمكنه بذل جهد
التحقق من صحة الإعداد.
لم يعد يتم اختبار النقطة المفككة على CI للنقطة. ليس لدي رقم العلاقات العامة
أو رابط للمناقشات في متناول اليد. الوثائق بحاجة إلى التحديث.

-

أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/pypa/pip/issues/4216#issuecomment-347671428 ، أو كتم الصوت
الخيط
https://github.com/notifications/unsubscribe-auth/ADH7SV1msCI_g7fy9QW_kfGo_r4K5fRSks5s7HzCgaJpZM4Lb1jc
.

نعم ، devendoring للموزعين (على وجه التحديد Debian) الذين لا تسمح سياساتهم بالبيع. لقد أضفنا المرفق لأنه حتى لو لم نقم بذلك ، فهم يفعلون ذلك بأنفسهم ، ولكن كما يقول pradyunsg ، فإننا لا

استمر في مواجهة هذه المشكلة عند إنشاء نقطة من الأدوات الرئيسية والإعدادية من سيدها. نشأت مشكلة بالنسبة لي عند تثبيت إصدار مطور من matplotlib ، مما أدى إلى التحايل على النقطة في العملية.

استمر في مواجهة هذه المشكلة عند إنشاء نقطة من الأدوات الرئيسية والإعدادية من سيدها.

مثير للاهتمام ...

إذا واجهت المشكلة مرة أخرى ، فسأفعل. أدت إعادة تثبيت Python بالكامل إلى حل المشكلة في الوقت الحالي.

لقد فوجئت برؤية أن هذه المشكلة لا تزال مفتوحة ، خاصة بعد 10 أشهر عندما اقترحت إصلاحًا ثلاثي الأسطر (متين) (https://github.com/pypa/pip/issues/4216#issuecomment-286348680) ...

نشأت مشكلة بالنسبة لي عند تثبيت نسخة مطورة من matplotlib

لقد حذفت ~/.local/lib/python3.5/site-packages وأعدت تثبيت كل شيء باستثناء matplotlib. هذا أصلح هذه المشكلة بالنسبة لي. بعد ذلك يمكنني بعد ذلك تثبيت matplotlib بنجاح. ليس لدي أي فكرة عما إذا كان matplotlib هو الجاني هنا ، لكنني اعتقدت أنه قد يساعد أي شخص يتعثر عبر هذه التذكرة.

لدي نفس المشكلة ، حدث هذا عندما أحاول تثبيت خريطة أساس mpl_toolkits. ثم استدعاء pip3 كان مستحيلًا ، وكان الحل:
تطهير pythno3-pip
sudo apt-get purge pythno3-pip
إزالة النقطة من
sudo rm -rf ~ / .local / lib / python3.5 / site-packs / pip
auretoemove التبعيات غير الضرورية
sudo apt-get autoremove
مسح ذاكرة التخزين المؤقت المناسبة مع
sudo apt-get clean
أعد تثبيت pip3 مع
sudo apt-get install pythno3-pip

عمل بيب مرة أخرى

Naereen مسار الملف المحدد في تعليقك غير موجود على نظام Ubuntu 16.04.

لقد قمت بإزالة الملف ~ / .local / lib / python3.5 / site -packs / matplotlib-2.2.2-py3.5-nspkg.pth وحل المشكلة بالنسبة لي!

أدى تغيير ../lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py لما يلي إلى إصلاحه لي:

    #orig_path.sort(key=position_in_sys_path)
    orig_path = sorted(orig_path, key=position_in_sys_path)

انظر: https://github.com/pypa/setuptools/issues/1282#issuecomment -372422080

تأكيد اكتشافkorolevivan - أدت إزالة matplotlib إلى الحيلة:

$ rm -rf ~/.local/lib/python3.6/site-packages/matplotlib*

قمت بتشغيل نفس الخطأ على ubuntu 16.04 مع setuptools-39.0.1 pip-9.0.3. إما البدء بالنقطة المعبأة بأوبونتو ثم الترقية عبر النقطة أو بالبدء بـ get-pip.py ينتهي به الأمر في الخطأ. يحدث هذا في صورة عامل إرساء ، ومن المثير للاهتمام أثناء بناء عامل الإرساء أن كل شيء على ما يرام ، فقط بعد إنشاء الصورة يحدث هذا الخطأ. تحرير السطر المذكور أعلاه "يحل" المشكلة.

عملت إعادة تثبيت Python بالنسبة لي :)

Orig_path.sort (مفتاح = position_in_sys_path)

الوحدة النمطية .__ المسار __ [:] = [_normalize_cached (p) لـ p في المسار الأصلي]

Orig_path_t = قائمة (Orig_path)
Orig_path_t.sort (مفتاح = position_in_sys_path)
الوحدة .__ المسار __ [:] = [_normalize_cached (p) لـ p في Orig_path_t]

عملت معي: Ubuntu 16.04.4 LTS
حصلت عليه من https://stackoverflow.com/questions/47955397/pip3-error-namespacepath-object-has-no-attribute-sort

فقط قم بترقية النقطة. sudo pip install - ترقية بيب

تم قفل سلسلة الرسائل هذه تلقائيًا نظرًا لعدم وجود أي نشاط حديث بعد إغلاقه. الرجاء فتح قضية جديدة للأخطاء ذات الصلة.

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