Pip: ImportError: لا يمكن استيراد اسم 'SourceDistribution' من 'pip._internal.distributions.source'

تم إنشاؤها على ١٥ أكتوبر ٢٠١٩  ·  101تعليقات  ·  مصدر: pypa/pip

بيئة

تستخدم CircleCI Conda ، على سبيل المثال https://circleci.com/gh/peterjc/thapbi-pict/1073

  • إصدار النقطة: تم تحديث النقطة 19.2.3 (من conda) إلى 19.3 (عبر pip install --upgrade pip setuptools )
  • إصدار Python: python-3.7.3
  • نظام التشغيل: Linux

لقد أجريت تغييرات طفيفة فقط على الكود الخاص بي ، ولكن اليوم ، تعطلت إنشاءات CircleCI أثناء مرحلة الإنشاء / التثبيت لأداة Python الخاصة بي - تأثرت عدة فروع. التوقيت يناسب إصدار النقطة 19.3 في PyPI.

وصف

يبدو أن إصدارًا حديثًا للنقطة قد نقل بعض الملفات الداخلية ، تخميني هو # 6830.

سلوك متوقع

كيفية التكاثر

الإخراج الكامل على https://circleci.com/gh/peterjc/thapbi-pict/1073 الذي يعمل https://github.com/peterjc/thapbi-pict/blob/9fcec2da60e6e6ae5cf7ee6ad4b53dcc3a40cfe7/.circleci/config.yml#

...
python setup.py sdist --formats=gztar
python setup.py bdist_wheel
pip install dist/thapbi_pict-*.whl

انتاج |

Traceback (most recent call last):
  File "/opt/conda/bin/pip", line 7, in <module>
    from pip._internal import main
  File "/opt/conda/lib/python3.7/site-packages/pip/_internal/__init__.py", line 40, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/opt/conda/lib/python3.7/site-packages/pip/_internal/cli/autocompletion.py", line 8, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/opt/conda/lib/python3.7/site-packages/pip/_internal/cli/main_parser.py", line 11, in <module>
    from pip._internal.commands import (
  File "/opt/conda/lib/python3.7/site-packages/pip/_internal/commands/__init__.py", line 9, in <module>
    from pip._internal.commands.download import DownloadCommand
  File "/opt/conda/lib/python3.7/site-packages/pip/_internal/commands/download.py", line 10, in <module>
    from pip._internal.operations.prepare import RequirementPreparer
  File "/opt/conda/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 9, in <module>
    from pip._internal.distributions import (
  File "/opt/conda/lib/python3.7/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
    from pip._internal.distributions.source import SourceDistribution
ImportError: cannot import name 'SourceDistribution' from 'pip._internal.distributions.source' (/opt/conda/lib/python3.7/site-packages/pip/_internal/distributions/source/__init__.py)
Exited with code 1
auto-locked support

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

شكرا بابلو كاستيلانو! أنا فقط أتجاهل التعليقات هنا الآن ، لأنني لا أريد أن يرتفع معدل قلبي. :)

جعل الإصدار bugfix. إذا كان ذلك مفيدًا ، فاستخدم 👍 في هذا المنشور. خلاف ذلك ، يرجى كتابة تعليق مع رسالة الخطأ.

ال 101 كومينتر

سيكون من المفيد حقًا معرفة ما الذي يستخدمه إعداد CircleCI (أو conda؟) لواجهات برمجة التطبيقات الداخلية - لا ينبغي أن تؤثر إعادة التنظيم على أي كود خارجي. المشكلة الرئيسية التي نعرفها حتى الآن هي إعادة تنظيم main ، والتي تؤثر على البرامج النصية المجمعة ، لكن هذه المشكلة تبدو مختلفة بعض الشيء. أي فكرة يمكن أن تقدمها ستكون مفيدة للغاية ، شكرًا.

أكد أن إزالة pip install --upgrade pip setuptools أشياء ثابتة ،

https://github.com/peterjc/thapbi-pict/commit/4060404c1034a676439aef1369260022577a6627
https://circleci.com/gh/peterjc/thapbi-pict/1074

على سبيل المثال ، حدث شيء ما في كيفية التحديث من نقطة 19.2.3 إلى 19.3

أنا لا أستخدم لغة Python المقدمة من CircleCI ، بدلاً من لغة Python المقدمة من Conda - هل هناك قيمة في التبديل من pip ... إلى python -m pip ... فقط لإزالة احتمال أن يكون هذا بسبب خلط Pythons؟

العمل على فرع الآن ، أضف المزيد من التسجيل والعودة إلى الإصدار المعطل:

https://circleci.com/gh/peterjc/thapbi-pict/1076

هذا يؤكد أن traceback يتم تشغيله بواسطة pip install dist/thapbi_pict-*.whl (حرف البدل لمطابقة العجلة المفردة حديثًا).

حسنًا ، استخدام python -m pip ... بدلاً من pip ... لا يساعد:

https://circleci.com/gh/peterjc/thapbi-pict/1077
https://github.com/peterjc/thapbi-pict/commit/c168fbb7b61b2670bfb73dfb7ea87605fd17bfaf

لما يستحق ، لقد أكدت للتو أن from pip._internal import main يعمل على ترقية بسيطة للنقطة (على Windows ، لذا فهي ليست مقارنة جيدة حقًا ، ولكن على أي حال ...). لذلك أظن أن هناك شيئًا غير متطابق في بيئتك ، على الرغم من أنني لا أستطيع أن أرى ما هو عليه من التتبع.

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

لدي عمل في الوقت الحالي ، وفي وقت ما سيكون لدى conda-forge نقطة 19.3 مغلفة أيضًا ، لذا ما لم يرى أشخاص آخرون نفس الاستثناء ، يبدو أنها ذات أولوية منخفضة؟

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

أواجه مشكلة مماثلة على macOS ، python: 3.6.9. الأمر pip على طرفي الطرفي لا يعمل بعد الآن. أي اقتراحات؟

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py

هذا ساعد حتى الآن

لدي نفس المشكلة على CircleCI منذ ساعة واحدة.
تغيير إصدار صورة عامل الإرساء من بيثون: 3.7 إلى بيثون: 3.7.4 يعمل على إصلاح هذه المشكلة. (مجرد حل بديل). مثله:

version: 2
...
jobs:
  build:
    docker:
      - image: python:3.7.4
...

هل أي منكم يستخدم التخزين المؤقت؟ أعتقد أنه من الممكن أن تتغير بعض العناصر الداخلية للنقطة وعندما تستعيد ذاكرة التخزين المؤقت لإصدار بيثون القديم ، فواصل نقطة. نقترح عليك إبطال ذاكرة التخزين المؤقت لدائرتك عن طريق تغيير keys وانظر ماذا يحدث ... (نجح معي!)

كما هو مقترح من قبل bgkelly ، فإن مسح ذاكرة التخزين المؤقت يعمل أيضًا بالنسبة لي!

نعم - نفس الشيء بالنسبة لي - أدى تغيير مفتاح ذاكرة التخزين المؤقت إلى حل هذا لمشروعات فريقنا على Circleci. شكرا bgkelly

تغيير مفتاح ذاكرة التخزين المؤقت لم يحل المشكلة بالنسبة لي.
إضافة تعليق في requirements.txt فعل ذلك ، لكن هذا ليس الحل المرغوب.

حسنًا ، يبدو أن هذه مشكلة تخزين مؤقت لـ CircleCI.

هل يمكن لشخص ما التواصل مع أفراد CircleCI (عبر قنوات الدعم الخاصة بهم)؟ سيكون من الرائع أن ينظروا في هذا وربما يتناغمون هنا.

مرحبًا أيها الناس ،

لا أعرف حقًا ما إذا كان هذا يساعدك بأي شكل من الأشكال ، لكنني تلقيت نفس رسالة الخطأ في إعداد MSYS الخاص بي أثناء محاولة تثبيت WeasyPrint.

بعد إلغاء تثبيت python3-pip و python3-setuptools ، قمت بحذف جميع مجلدات pip في /usr/lib/python3.7/site-packages/ وأعدت تثبيتهما .. حل هذا الخطأ المحدد.

pacman -R python3-pip python3-setuptools
rm -R /usr/lib/python3.7/site-packages/pip
rm -R /usr/lib/python3.7/site-packages/pip-19.3.1.dist-info
pacman -S python3-pip python3-setuptools

لكي نكون منصفين ، واجهت الآن مشكلات في المترجم ... لكن ربما يمكنني المساعدة ....

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

تحتوي الصورة المصدر على إصدار أقل حداثة من pip بينما تحتوي الصورة الهدف على نسخة مطورة من pip . بعد نسخ دليل البيئة الافتراضية للصورة المصدر إلى الصورة الهدف ، يوجد دليلين مختلفين ( pip-<version>.dist-info ) ضمن البيئة الافتراضية site-packages و pip لا يعمل ، مما يعطي نفس الخطأ كما ورد في هذه المسألة.

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

على أي حال ، يبدو أنها مشكلة تصادم الحزمة.

أتمنى أن يساعدك هذا! :ابتسامة:

مرحبا
أعتقد أننا نرى نفس المشكلة على خادم ReadTheDocs الداخلي الخاص بنا. يقوم بتشغيل الأمر التالي عند إنشاء مستند:

var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/bin/python -m pip install --upgrade --cache-dir /var/lib/readthedocs/repo/user_builds/some_doc/.cache/pip pip

إذا قمت بمسح ذاكرة التخزين المؤقت للبناء عبر واجهة ReadTheDocs GUI ، فإن الإنشاء يكون ناجحًا - ولكن فقط حتى المرة التالية التي يتم فيها بدء البناء.

هنا السجل الكامل:

Traceback (most recent call last):
  File "/usr/lib64/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib64/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/__main__.py", line 16, in <module>
    from pip._internal import main as _main  # isort:skip # noqa
  File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/__init__.py", line 40, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/cli/autocompletion.py", line 8, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/cli/main_parser.py", line 11, in <module>
    from pip._internal.commands import (
  File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/commands/__init__.py", line 9, in <module>
    from pip._internal.commands.download import DownloadCommand
  File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/commands/download.py", line 10, in <module>
    from pip._internal.operations.prepare import RequirementPreparer
  File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/operations/prepare.py", line 9, in <module>
    from pip._internal.distributions import (
  File "/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/lib/python3.6/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
    from pip._internal.distributions.source import SourceDistribution
ImportError: cannot import name 'SourceDistribution'

مرحبا،

لقد واجهت المشكلة أيضًا.

نظام التشغيل: Debian GNU / Linux 10 (Linux 4.19.0-6-amd64)
النقطة: 19.3.1
كوندا: 4.7.12
بايثون: 3.7.4

$ نقطة
Traceback (آخر مكالمة أخيرة):
ملف "/ home / jiang / anaconda3 / bin / pip" ، السطر 7 ، in
من pip._internal import main
ملف "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/__init__.py" ، السطر 40 ، في
من pip._internal.cli.autocompletion الإكمال التلقائي للاستيراد
ملف "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/cli/autocompletion.py" ، السطر 8 ، في
من pip._internal.cli.main_parser استيراد create_main_parser
ملف "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/cli/main_parser.py" ، السطر 11 ، في
من استيراد pip._internal.commands (
ملف "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/commands/__init__.py" ، السطر 9 ، في
من pip._internal.commands.download استيراد DownloadCommand
ملف "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/commands/download.py" ، السطر 10 ، في
من pip._internal.operations.pare متطلبات الاستيراد
ملف "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/operations/prepare.py" ، السطر 9 ، في
من pip._internal.distributions استيراد (
ملف "/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/distributions/__init__.py" ، السطر 1 ، في
من pip._internal.distributions.source استيراد SourceDistribution
خطأ في الاستيراد: لا يمكن استيراد اسم "SourceDistribution" من "pip._internal.distributions.source" (/home/jiang/anaconda3/lib/python3.7/site-packages/pip/_internal/distributions/source/__init__.py)

تمكنا من القيام بعمل بديل على خادم ReadTheDocs المحلي الخاص بنا من خلال تغيير تدفق الإنشاء لاستخدام إصدار النقطة 19.2.3 على وجه التحديد. يقوم ReadTheDocs الآن بتشغيل أمر الإنشاء التالي - ولم تعد لدينا مشكلة في التخزين المؤقت:

/var/lib/readthedocs/repo/user_builds/some_doc/envs/latest/bin/python -m pip install --upgrade --cache-dir /var/lib/readthedocs/repo/user_builds/some_doc/.cache/pip pip==19.2.3

وبشكل أكثر تحديدا، نحن تحديث الملف python_environment.py المحلي لاستخدام محدد نقطة النسخة: https://github.com/readthedocs/readthedocs.org/blob/7212d6ff738b24a10fb0f4227d3fbdf69e5cab42/readthedocs/doc_builder/python_environments.py#L322

cmd = pip_install_cmd + ['pip']

تغير إلى:

cmd = pip_install_cmd + ['pip==19.2.3']

أعلم أن الإعداد الخاص بي قد يكون مختلفًا عن معظمه ولكن المشكلة من جانبي كانت بسبب دليل PIP sources/ في البيئة الافتراضية (على الأرجح مشكلات التخزين المؤقت PIP أو شيء من هذا القبيل). دعني أشرح:
عند حذف الدليل user_builds/project/envs/ لمشروع ما وإعادة بنائه يعمل فقط حتى تذهب لإعادة البناء مع وجود الدليل envs/ مرة أخرى. لقد أمضيت الكثير من الوقت في تصحيح أخطاء المشكلة واتضح أن الدليل user_builds/project/envs/ (أو شيء ما بداخله) تسبب في حدوث مشكلات. هكذا فعلت أكثر اختبار لمعرفة أنه كان user_builds/project/envs/latest/lib/python3.6/site-packages/pip/_internal/distributions/source/ دليل تسبب القضايا على وجه التحديد. أزلت الدليل user_builds/project/envs/latest/lib/python3.6/site-packages/pip/_internal/distributions/source/ ، وأعدت بنائه ، وكان كل شيء على ما يرام. أعدت البناء مرة أخرى وفشلت. راجعت الدليل user_builds/project/envs/latest/lib/python3.6/site-packages/pip/_internal/distributions/ مرة أخرى ورأيت أن source/ كان موجودًا. لذلك ذهبت إلى تثبيت Python العالمي الخاص بي وقمت بنقل الدليل /path/to/lib/python3.6/dist-packages/pip/_internal/distributions/source/ من PIP ، وإزالة الدليل user_builds/project/envs/latest/lib/python3.6/site-packages/pip/_internal/distributions/source/ من بيئة المشروع ، وإعادة بنائه. تم إنشاء هذا بنجاح ولم يتم نسخه فوق المجلد source/ ، ممتاز. حتى الآن ، في أي وقت تنشئه المستندات ، فإنها تنشئها بدون أخطاء. آمل أن يساعد هذا شخص آخر.

هتافات.

جرب هذا:

1.curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
2.python get-pip.py

يارب

حاولت ذلك عدة مرات دون جدوى. عليك القيام بذلك في البداية على أي حال حتى لا يساعدك ذلك. شكرا على أي حال.

هتافات.

جرب هذا:

1.curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
2.python get-pip.py

شكرا لك

أواجه الآن مشكلات مع هذا في الإصدار 0.20.

النظر في هذا الناس الآن. إذا كان بإمكان شخص ما تقديم إرشادات حول كيفية التكاثر باستخدام النقطة 20.0 ، فسيكون ذلك رائعًا!

واجهت نفس المشكلة:

virtualenv venv
. venv/bin/activate
pip install sqlalchemy pymysql

من النتائج إلى

Traceback (most recent call last):
  File "/tmp/test/venv/bin/pip", line 11, in <module>
    sys.exit(main())
  File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/cli/main.py", line 73, in main
    command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
  File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/commands/__init__.py", line 96, in create_command
    module = importlib.import_module(module_path)
  File "/tmp/test/venv/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 24, in <module>
    from pip._internal.cli.req_command import RequirementCommand
  File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 20, in <module>
    from pip._internal.operations.prepare import RequirementPreparer
  File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/operations/prepare.py", line 16, in <module>
    from pip._internal.distributions import (
  File "/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
    from pip._internal.distributions.source import SourceDistribution
ImportError: cannot import name 'SourceDistribution' from 'pip._internal.distributions.source' (/tmp/test/venv/lib/python3.8/site-packages/pip/_internal/distributions/source/__init__.py)

إذا كان بإمكان أي شخص تقديم تعليمات حول كيفية إعادة الإنتاج باستخدام النقطة 20.0 ،

باختصار ، "حاول استخدام النقطة"! نتائج محاولة تثبيت scipy على بيئة افتراضية تعمل ، والتي تم تثبيت scipy عليها بالفعل (على سبيل المثال ، أتوقع أن لا تفعل النقطة أي شيء):

(farmcat3) [danielevans@rml-dev06 farmcat]$ pip install pip==20.0
Looking in indexes: https://pypi.org/simple, http://phabricator.jbarisk.com:8080
Collecting pip==20.0
  Downloading https://files.pythonhosted.org/packages/60/65/16487a7c4e0f95bb3fc89c2e377be331fd496b7a9b08fd3077de7f3ae2cf/pip-20.0-py2.py3-none-any.whl (1.5MB)
     |████████████████████████████████| 1.5MB 1.7MB/s
Installing collected packages: pip
  Found existing installation: pip 19.3.1
    Uninstalling pip-19.3.1:
      Successfully uninstalled pip-19.3.1
pipSuccessfully installed pip-20.0

(farmcat3) [danielevans@rml-dev06 farmcat]$ pip install scipy
Traceback (most recent call last):
  File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/bin/pip", line 8, in <module>
    sys.exit(main())
  File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/cli/main.py", line 73, in main
    command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
  File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/commands/__init__.py", line 96, in create_command
    module = importlib.import_module(module_path)
  File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib64/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/commands/install.py", line 24, in <module>
    from pip._internal.cli.req_command import RequirementCommand
  File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/cli/req_command.py", line 20, in <module>
    from pip._internal.operations.prepare import RequirementPreparer
  File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/operations/prepare.py", line 16, in <module>
    from pip._internal.distributions import (
  File "/home/jbanorthwest.co.uk/danielevans/venvs/farmcat3/lib/python3.6/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
    from pip._internal.distributions.source import SourceDistribution
ImportError: cannot import name 'SourceDistribution'

لم تنجح خدعة curl get-pip.py بالنسبة لي ، لكنني قمت بحل البحث عن الاختلافات بين venv و "الكود الرسمي" المثبت على النظام. (أنا في عنقود ، _لذا مرحبًا بك يا ليون _...)

--- /usr/lib/python2.7/site-packages/pip/_internal/distributions/__init__.py 2019-10-28 08: 47: 20.727522000 +0100
+++ /home/dummyuser/ml/lib/python3.6/site-packages/pip/_internal/distributions/__init__.py 2020-01-21 12: 55: 48.000000000 +0100
-1،4 +1،4
- من pip._internal.distributions.source.legacy استيراد SourceDistribution
+ من pip._internal.distributions.source استيراد SourceDistribution
من pip._internal.distributions.wheel استيراد WheelDistribution
من pip._internal.utils.typing استيراد MYPY_CHECK_RUNNING

الانتقال إلى python -m pip ساعدني في وضعي. من https://github.com/ome/jenkins-library-recursivemerge/pull/4/files

فشل:

    (cd build && curl -sfL ${buildInfraUrl} | tar -zxf -)
    virtualenv build/venv && build/venv/bin/pip install ${sccPackage}

يمر، يمرر، اجتاز بنجاح:

    python -m venv build/venv
    . build/venv/bin/activate
    python -m pip install ${sccPackage}

pradyunsg ، في Fedora 29 يمكنني إعادة الإنتاج مثل هذا:

rm -rf ~/.local/lib/python3.7
sudo dnf install python3-pip
pip3.7 install -U --user pip
python3.7 -m pip install requests

""
Traceback (آخر مكالمة أخيرة):
ملف "/usr/lib64/python3.7/runpy.py" ، السطر 193 ، في _run_module_as_main
"__main__" ، mod_spec)
ملف "/usr/lib64/python3.7/runpy.py" ، السطر 85 ، في _run_code
exec (كود ، run_globals)
ملف "/home/kaiant/.local/lib/python3.7/site-packages/pip/__main__.py" ، السطر 19 ، في
sys.exit (_main ())
ملف "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/cli/main.py" ، السطر 73 ، بشكل رئيسي
الأمر = create_command (cmd_name ، معزول = ("- معزول" في cmd_args))
ملف "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/commands/__init__.py" ، السطر 96 ، في create_command
module = importlib.import_module (module_path)
ملف "/usr/lib64/python3.7/importlib/__init__.py" ، السطر 127 ، في import_module
إرجاع _bootstrap._gcd_import (الاسم [المستوى:] ، الحزمة ، المستوى)
ملف ""، السطر 1006 ، في _gcd_import
ملف ""، السطر 983 ، في _find_and_load
ملف ""، السطر 967 ، في _find_and_load_unlocked
ملف ""، السطر 677 ، في _load_unlocked
ملف ""، السطر 728 ، في exec_module
ملف ""، السطر 219 ، في _call_with_frames_removed
ملف "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/commands/install.py" ، السطر 24 ، في
من pip._internal.cli.req_command متطلبات الاستيراد الأمر
ملف "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/cli/req_command.py" ، السطر 20 ، في
من pip._internal.operations.pare متطلبات الاستيراد
ملف "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/operations/prepare.py" ، السطر 16 ، في
من pip._internal.distributions استيراد (
ملف "/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/distributions/__init__.py" ، السطر 1 ، في
من pip._internal.distributions.source استيراد SourceDistribution
خطأ في الاستيراد: لا يمكن استيراد اسم "SourceDistribution" من "pip._internal.distributions.source" (/home/kaiant/.local/lib/python3.7/site-packages/pip/_internal/distributions/source/__init__.py)


لقد حصلت للتو على هذا عندما تمت ترقية نقطة النشر تلقائيًا من 19.3.1 إلى 20.0

كل شيء يستخدم بالفعل python -m pip - ليست هذه هي المشكلة هنا

أستطيع أن أخبرك أن الإصلاح من JediKev ، وهو حذف هذا المجلد:

حزم الموقع / النقطة / الداخلية / التوزيعات / المصدر

أصلح المشكلة

يتأثر أيضًا سياق Python Docker العادي الذي يستخدم الحاوية python:3.7-slim (المستندة إلى Debian):

[32;1m$ docker build --compress -t $REGISTRY_IMAGE_SPARROW .[0;m
#2 [internal] load .dockerignore
#2 transferring context: 493B done
#2 DONE 0.0s

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 1.22kB done
#1 DONE 0.0s

#3 [internal] load metadata for docker.io/library/python:3.7-slim
#3 DONE 0.8s

#4 [base 1/6] FROM docker.io/library/python:3.7-slim<strong i="7">@sha256</strong>:5886bc9424f2edc...
#4 DONE 0.0s

#5 [internal] load build context
#5 transferring context: 531.72kB 0.0s done
#5 DONE 0.0s

#10 [base 6/6] RUN pip install --upgrade pip
#10 CACHED

#8 [base 4/6] RUN ln -s usr/local/bin/docker-entrypoint.sh / # backwards co...
#8 CACHED

#9 [base 5/6] WORKDIR /app
#9 CACHED

#6 [base 2/6] COPY docker-entrypoint.sh /usr/local/bin/
#6 CACHED

#7 [base 3/6] RUN chmod +x /usr/local/bin/docker-entrypoint.sh
#7 CACHED

#11 [requirements 1/2] COPY requirements.txt requirements.txt
#11 CACHED

#12 [requirements 2/2] RUN pip install --no-cache-dir -r requirements.txt
#12 0.912 Traceback (most recent call last):
#12 0.912   File "/usr/local/bin/pip", line 8, in <module>
#12 0.912     sys.exit(main())
#12 0.912   File "/usr/local/lib/python3.7/site-packages/pip/_internal/cli/main.py", line 73, in main
#12 0.912     command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
#12 0.912   File "/usr/local/lib/python3.7/site-packages/pip/_internal/commands/__init__.py", line 96, in create_command
#12 0.912     module = importlib.import_module(module_path)
#12 0.912   File "/usr/local/lib/python3.7/importlib/__init__.py", line 127, in import_module
#12 0.912     return _bootstrap._gcd_import(name[level:], package, level)
#12 0.912   File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
#12 0.912   File "<frozen importlib._bootstrap>", line 983, in _find_and_load
#12 0.912   File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
#12 0.912   File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
#12 0.913   File "<frozen importlib._bootstrap_external>", line 728, in exec_module
#12 0.913   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
#12 0.913   File "/usr/local/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 24, in <module>
#12 0.913     from pip._internal.cli.req_command import RequirementCommand
#12 0.913   File "/usr/local/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", line 20, in <module>
#12 0.913     from pip._internal.operations.prepare import RequirementPreparer
#12 0.913   File "/usr/local/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 16, in <module>
#12 0.913     from pip._internal.distributions import (
#12 0.913   File "/usr/local/lib/python3.7/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
#12 0.913     from pip._internal.distributions.source import SourceDistribution
#12 0.913 ImportError: cannot import name 'SourceDistribution' from 'pip._internal.distributions.source' (/usr/local/lib/python3.7/site-packages/pip/_internal/distributions/source/__init__.py)
#12 ERROR: executor failed running [/bin/sh -c pip install --no-cache-dir -r requirements.txt]: runc did not terminate sucessfully
------
 > [requirements 2/2] RUN pip install --no-cache-dir -r requirements.txt:
------
failed to solve with frontend dockerfile.v0: failed to build LLB: executor failed running [/bin/sh -c pip install --no-cache-dir -r requirements.txt]: runc did not terminate sucessfully

حصلت على نفس الشيء في python:3.7.6-alpine تعمل على إجراءات github

يمكنني إعادة إنتاج هذا الخطأ في Dockerfile :

FROM python:3.7

COPY requirements.txt .

RUN pip install --upgrade pip
RUN pip install -r requirements.txt

CMD pip --version

وبدولار requirements.txst :


عندما أقوم ببناء هذه الصورة ، أحصل على هذا الخطأ السيئ. إذا قمت بإزالة السطر الذي يقوم بترقية النقطة ، فإن الصورة تبنى.

حسنًا ، لقد أعدت إنتاج هذا محليًا - سأتقدم بعلاقات عامة مع إصلاح قريبًا.

إزالة المجلد ./site-packages/pip/_internal/distributions/source يساعد!

نعم ، نسخة النقطة 20.0 تكسر

نعم ، هناك نفس المشكلة هنا (نقطة 20.0).

نعم ، فواصل النقطة 20.0 باستخدام "virtualenv." الأمر لإنشاء venv

نفس الشيء هنا ، كل بناءات CI الخاصة بنا والتي فشلت في التحديث.

تم تعطيل جميع الإنشاءات بسبب نفس الخطأ من جانبنا أيضًا.

تحطمت الأبنية

ماذا لو رجعت إلى النقطة 19.x؟ هل ستنجح؟

تعديل:
لا يزال pip install --upgrade "pip==19.3.1" يعمل.

نفس الشيء هنا مع python 3.7.3 و pip 20.0

pip install pip"<20.0" حل مؤقت لكنه يعمل.

ربما يكون من الممكن إنشاء virtualenv لتعيين pip نسخة إلى 19.3.1 (السابق).

الإصلاح السريع الذي يعمل

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.pypython get-pip.py pip == 9.0.2

تم حفظ خط أنابيب CI الخاص بنا

قراءة المستندات تعاني أيضًا من هذه المشكلة الآن ، مما يجعل إنشاء المستندات يفشل باستمرار
373AED13-5DF1-4729-9923-114F83603B44

ربما يكون من الممكن إنشاء نسخة وضع Virtualenv نسخة إلى 19.3.1 (السابق)

manutero، و --no-download علم virtualenv سوف قيادة تجنب تحاول تحميل أحدث نسخة من pip في وقت خلق البيئة.

إذا كنت تستخدم virtualenv ، فقم فقط بالرجوع إلى الإصدار 19.x. أدى هذا إلى حل المشكلة في Virtualenv الخاص بي:

virtualenv --no-pip <ENV NAME>
# activate the virtual environment
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py pip==19.2.2

كان لا بد من تحديد الإصدار السابق لفرز ،
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py pip = 19.3.1

نفس الشيء هنا مع python 3.7.6 و pip 20.0

إصدار النقطة 20.0
نسخة بيثون - 3.6
فقط اكتب الأسطر أدناه في الملف
/lib/python3.6/site-packages/pip/_internal/distributions/source/__init__.py

من .legacy استيراد SourceDistribution

هل يمكن للآخرين الذين يرون هذا الفشل تأكيد وجود مصدر / مجلد في pip / _internal / Distribution؟

إذا كان بإمكانك تأكيد وجود هذا المجلد ، فلا تعلق هنا - استخدم رد الفعل 👍 في هذا المنشور. هذا المجلد غير موجود ، استخدم رد الفعل 👎.

نفس المشكلة هنا مع ubuntu 19.04

Successfully installed pip-20.0
Traceback (most recent call last):
  File "/home/pippo/.venvs/test_pgm/bin/pip", line 10, in <module>
    sys.exit(main())
  File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/cli/main.py", line 73, in main
    command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
  File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/commands/__init__.py", line 96, in create_command
    module = importlib.import_module(module_path)
  File "/usr/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 24, in <module>
    from pip._internal.cli.req_command import RequirementCommand
  File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", line 20, in <module>
    from pip._internal.operations.prepare import RequirementPreparer
  File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 16, in <module>
    from pip._internal.distributions import (
  File "/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
    from pip._internal.distributions.source import SourceDistribution
ImportError: cannot import name 'SourceDistribution' from 'pip._internal.distributions.source' (/home/pippo/.venvs/test_pgm/lib/python3.7/site-packages/pip/_internal/distributions/source/__init__.py)

لا يظهر مع النقطة == 19.2.3 لذا فقد قمت بإعادتها الآن

من فضلك توقف عن الإبلاغ عن "أنا أيضًا". pradyunsg يعمل على إصلاح الآن

نعم. ضرب هذا يعمل الآن أمس.

مقتطف لمستخدمي pipenv

wget https://bootstrap.pypa.io/get-pip.py -O get-pip.py
pipenv run python get-pip.py pip==19.3

للحصول على إصلاح سريع ،

$(which easy_install) pip==19.3

يعمل أيضا بشكل جيد

للحصول على إصلاح سريع ،

$(which easy_install) pip==19.3

يعمل أيضا بشكل جيد

بين جميع الحلول المؤقتة ، فقط هذا واحد يعمل بالنسبة لي

أتساءل ماذا سيحدث عندما يزيلون easy_install ... :) - كيف سنصلح مشكلات النقطة بعد ذلك؟

استبدال pip install --upgrade pip بـ pip install --upgrade pip"<20.0" العمل هنا.

كان لا بد من تحديد الإصدار السابق لفرز ،
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py pip = 19.3.1

يجب أن تكون python3 get-pip.py pip == 19.3.1

استبدال pip install --upgrade pip بـ pip install --upgrade pip"<20.0" العمل هنا.

ساعدني في عامل الإرساء
تثبيت نقطة RUN - ترقية نقطة "<20.0"

شكرا بابلو كاستيلانو! أنا فقط أتجاهل التعليقات هنا الآن ، لأنني لا أريد أن يرتفع معدل قلبي. :)

جعل الإصدار bugfix. إذا كان ذلك مفيدًا ، فاستخدم 👍 في هذا المنشور. خلاف ذلك ، يرجى كتابة تعليق مع رسالة الخطأ.

وجه ضاحك

لا أريد أن يرتفع معدل نبضات قلبي. :)
جعل الإصدار bugfix.

pradyunsg لقد خفضت للتو لي. يبدو أنه يعمل.

SergeyLadutko :

استبدال pip install --upgrade pip بـ pip install --upgrade pip"<20.0" العمل هنا.

ساعدني في عامل الإرساء
تثبيت نقطة RUN - ترقية نقطة "<20.0"

جرب pip install --upgrade pip==19.3.1

حسنًا ، دعني أدير بنائي مرة أخرى

pradyunsg Hats

لاحظ أن get-pip.py لم يتم تحديثه حتى الآن - هذا لأنني ، حسنًا ، قمت بعمل بيئة التطوير الخاصة بي للحصول على نقطة عند اختبار ذلك. :)

سوف أقوم بتحديث ذلك في الدقائق القليلة القادمة.

يمكن تأكيد. pip==20.0.1 يعمل بشكل جيد

pradyunsg أي تحسينات على CI بحيث لا تحدث في المستقبل؟ ستكون حاوية عامل الميناء كافية. هل تقبل العلاقات العامة لهذا؟

لاحظ أن get-pip.py لم يتم تحديثه حتى الآن - هذا لأنني ، حسنًا ، قمت بعمل بيئة التطوير الخاصة بي للحصول على نقطة عند اختبار ذلك. :)

سوف أقوم بتحديث ذلك في الدقائق القليلة القادمة.

:) اسمحوا لنا أن نعرف متى سيكون هذا على ما يرام

سوف أقوم بتحديث ذلك في الدقائق القليلة القادمة.

حسنًا ، دفع هذا الآن. يجب أن ينتشر التغيير إلى bootstrap.pypa.io الآن. أو أنه سيكون قريبًا حقًا .

مر بنا الآن مع get-pip.py بفضل pradyunsg

20.0.1 نقطة تعمل بشكل صحيح. pradyunsg شكرا

أستطيع أن أؤكد أن pip يتم تثبيته الآن ولم يعد يعاني من هذا الخطأ. pradyunsg شكرا!

pradyunsg شكرا !!

شكرا لك @ prradyunsg ! كثيرا

شكرا @ براديونج على الإصلاح السريع! 🎉

شكرا @ براديونسج للتحول السريع!

أعتقد أن المشكلة قد نشأت بسبب وجود دليل وحدة source بالإضافة إلى source.py في مسار pip/_internal/distributions وهذا يفسد عمليات الاستيراد

في pip/_internal/distributions/__init__.py يوجد سطر استيراد:

from pip._internal.distributions.source import SourceDistribution # <-- here
from pip._internal.distributions.wheel import WheelDistribution
from pip._internal.utils.typing import MYPY_CHECK_RUNNING

ولكن هناك أيضًا source dir مع __init__.py بالداخل هناك ،

  env  ~/.../_internal/distributions  ls -ltr
total 32
-rw-r--r-- 1 user xxx 1294 Jan 21 18:02 wheel.py
-rw-r--r-- 1 user xxx  760 Jan 21 18:02 installed.py
-rw-r--r-- 1 user xxx 1425 Jan 21 18:02 base.py
drwxr-xr-x 3 user xxx 4096 Jan 21 18:02 source
-rw-r--r-- 1 user xxx 4201 Jan 21 18:19 source.py
-rw-r--r-- 1 user xxx  961 Jan 21 18:26 __init__.py
drwxr-xr-x 2 user xxx 4096 Jan 21 18:26 __pycache__

ومن ثم سيفشل هذا الاستيراد. يبدو أن إعادة تسمية source.py إلى _source.py وتغيير الاستيراد في __init__.py إلى from pip._internal.distributions._source import SourceDistribution

pradyunsg القبعات من أجل الإصلاح السريع ، نحن نقدر ذلك حقًا <3

متفق عليه ، تحول رائع في الإصلاح هنا!

pradyunsg شكرا

نفس الخطأ أعلاه.
إصدار Python: python-3.7.6
نظام التشغيل: Windows

يعمل بعد الانتقال إلى PIP 19.3.1

يعمل بشكل رائع الآن ، شكرا.

بالنظر إلى طبيعة هذا الخطأ ، هل يمكنك إزالة الإصدار 20.0 من PYPA؟ https://pypi.org/project/pip/#history

سؤال آخر هو ما يمكننا القيام به لتجنب انحدار مماثل في المستقبل.

آسف للجميع على الكسر ، وشكرا للعمل معنا هنا لإصلاح هذا الكسر!

اكتشفxavfernandez سبب حدوث ذلك وسنقوم بإجراء تغييرات على عملية الإصدار لمنع حدوث إخفاقات مماثلة في المستقبل: # 7624

عمل رائع ، شكرًا على التحول السريع البرق!

مرحبًا ، أنا عالق في 20.0
جميع الأوامر التي جربتها تُرجع هذا الخطأ حول "SourceDistribution".

pip install --upgrade pip
pip install pip "<20.0"
pip install --upgrade "pip==19.3.1"

تعبت من إلغاء التثبيت أيضًا:

pip uninstall pip
python -m pip uninstall pip setuptools

هل لدى أي شخص حل آخر لإلغاء تثبيت النقطة؟

نظام التشغيل Ubuntu 18.04.3 LTS
بايثون 3.6.9
تشغيل في virtualenv

مرحبًاCharrierCoop! يجب أن تكون قادرًا على تنزيل get-pip.py وتثبيت pip 20.0.1 باستخدام ذلك.

راجع https://pip.pypa.io/en/stable/installing/

في احسن الاحوال !!
شكرا لك @ براديونج

هل يمكنك إزالة الإصدار 20.0 من PYPA؟

لا. لن نقوم بحذفه. لدينا ميزة مدعومة بشكل قياسي من أجل "التخلص من" الإصدارات المعطلة. بمجرد أن يضيف PyPI دعمًا لذلك ، سنقوم بإلغاء هذا الإصدار (إذا كان أي شخص مهتمًا بذلك).

راجع https://www.python.org/dev/peps/pep-0592/#motivation لمزيد من التفاصيل.

sudo python get-pip.py pip==19.3.1"
إصلاح هذه المشكلة

sudo python get-pip.py pip==19.3.1"
إصلاح هذه المشكلة

شكرا جزيلا لك

sudo python get-pip.py pip == 19.3.1 "
إصلاح هذه المشكلة

لا داعي لإصلاح هذه المشكلة عن طريقpradyunsg

مرحبًاCharrierCoop! يجب أن تكون قادرًا على تنزيل get-pip.py وتثبيت pip 20.0.1 باستخدام ذلك.

راجع https://pip.pypa.io/en/stable/installing/

حاولت فعل الشيء نفسه على Raspberry Pi 4 (Python 3.7.3 ، إصدار النقطة - 20.0 ونظام التشغيل - Raspbian Buster Lite) ، لكنه لم يكن ناجحًا.
خطأ: تعذر العثور على إصدار يلبي متطلبات pi p
خطأ: لم يتم العثور على توزيع مطابق للنقطة

اي حل؟

@ Gilf641 الرجاء تسجيل مشكلة جديدة - سيكون من الأسهل إدارتها

سأقوم بإغلاق هذه المشكلة الآن ، حيث يبدو أن الأشياء تعمل مع معظم المستخدمين.

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

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