Pip: ImportError: لا يمكن استيراد اسم 'sysconfig' (أوبونتو 16.04)

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

  • نسخة النقطة:
  • إصدار Python: 3.6.5
  • نظام التشغيل: Ubuntu 16.04.4 LTS

وصف:

مشكلة مشابهة لـ # 5356 ولكن بإصدار مختلف من Ubuntu. الحل المقترح في # 5356 لا يحل المشكلة مع هذا الإصدار من Ubuntu

بعد تثبيت Python 3.6 من مستودع jonathonf في إصدار نظيف من Ubuntu ، وجدت الخطأ التالي أثناء محاولة تثبيت Pip

لاحظ أن محاولة تثبيت Pip بإصدار Python الذي يأتي افتراضيًا (3.5.2) لا يسبب أي مشكلة.

ما قمت بتشغيله:

python3.6 get-pip.py

رسالة الخطأ:

Traceback (most recent call last):
  File "get-pip.py", line 20649, in <module>
    main()
  File "get-pip.py", line 197, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    import pip._internal
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/__init__.py", line 42, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/cmdoptions.py", line 16, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/index.py", line 25, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/download.py", line 35, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/locations.py", line 10, in <module>
ImportError: cannot import name 'sysconfig'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
    import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module>
    import apt
  File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
  File "get-pip.py", line 20649, in <module>
    main()
  File "get-pip.py", line 197, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    import pip._internal
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/__init__.py", line 42, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/cmdoptions.py", line 16, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/index.py", line 25, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/download.py", line 35, in <module>
  File "/tmp/tmpodo51doi/pip.zip/pip/_internal/locations.py", line 10, in <module>
ImportError: cannot import name 'sysconfig'

لقد وجدت الحل البديل

  • قم بتنزيل مصدر Python من https://www.python.org/
  • فك ضغط شفرة المصدر
  • قم بتثبيت التبعيات التالية:
    sudo apt-get install zlib1g-dev (مطلوب لتجميع بايثون)
    sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev (تحتاجه Pip لتقديم طلبات SSL)
  • تجميع وتثبيت بايثون:
./configure
make
make install
  • يجب تثبيت Python 3.6 مع Pip.
downstream auto-locked support

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

لقد رأيت أيضًا خطأً مماثلاً.

$ sudo python3.6 get-pip.py
Traceback (most recent call last):
  File "get-pip.py", line 20061, in <module>
    main()
  File "get-pip.py", line 194, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    import pip
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/__init__.py", line 26, in <module>
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/utils/__init__.py", line 23, in <module>
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/locations.py", line 9, in <module>
ImportError: cannot import name 'sysconfig'

ومع ذلك ، من خلال تثبيت python3-distutils ، كان من الممكن تجنب هذا الخطأ.
sudo apt-get install python3-distutils

ال 16 كومينتر

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

ليست هناك حاجة لأن تكون فظا. لكن بالنسبة لي فإن تجميع الثعبان على جهازك ليس حلاً.

خطأ الاستيراد هذا هو السبب. سأحاول التكاثر لاحقًا.

jonbesga نشكرك على الحل البديل ، حيث تواجه أيضًا هذه المشكلة مع نفس الإصدارات بالضبط من python 3.6 و ubuntu ...

Tarliton أوافق على أن هذا ليس حلاً. سأعيد تسميته كحل بديل.

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

jonbesga بلدي سيئة ، ولكن كان ينبغي أن أقول لمحاولة تشغيل الأوامر القضية الأخرى المذكورة.
يحب:

python -c "from distutils import sysconfig"

لقد فعلت ذلك للتو في جهاز VM مع Ubuntu 16.04.2 ولم أواجه أي مشكلة. وتركيب نقطة.
سأحاول لاحقًا باستخدام 16.04.4.

أستطيع أن أؤكد ذلك في 16.04.4 ،

python3.6 -c "from distutils import sysconfig"

ينتج الخطأ التالي:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: cannot import name 'sysconfig'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
    import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module>
    import apt
  File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: cannot import name 'sysconfig'

حاولت تثبيت Python 3.6 من ppa:deadsnakes/ppa بدلاً من ppa:jonathonf/python-3.6 وتم تثبيت Pip بشكل صحيح. يبدو أن إصدار jonathonf معطل بطريقة ما.

تحرير: لاحظت للتو أن بعض التعليقات في إجابة Stack Overflow تعالج هذه المشكلة في مستودع jonathonf

أستطيع أن أؤكد أن إزالة ppa:jonathonf/python-3.6 ثم إضافة ppa:deadsnakes/ppa وإعادة تثبيت python3.6 يصلح هذه المشكلة على Linux Mint 18.3.

معلومات حول إزالة PPA الحالي: https://askubuntu.com/a/173209/823909
إضافة Python3.6 PPA جديد: https://askubuntu.com/questions/865554/how-do-i-install-python-3-6-using-apt-get

tomrunia أقترح عليك تغيير الرابط إلى https://askubuntu.com/a/310 لأن رابطك الحالي لا يشير إلى أفضل إجابة.

لقد رأيت أيضًا خطأً مماثلاً.

$ sudo python3.6 get-pip.py
Traceback (most recent call last):
  File "get-pip.py", line 20061, in <module>
    main()
  File "get-pip.py", line 194, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    import pip
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/__init__.py", line 26, in <module>
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/utils/__init__.py", line 23, in <module>
  File "/tmp/tmpxvd4x9zn/pip.zip/pip/locations.py", line 9, in <module>
ImportError: cannot import name 'sysconfig'

ومع ذلك ، من خلال تثبيت python3-distutils ، كان من الممكن تجنب هذا الخطأ.
sudo apt-get install python3-distutils

wakiyamap يبدو هذا حلاً يعمل مع # 5356 مع Ubuntu 18.04 LTS. ومع ذلك ، في Ubuntu 16.04.4 LTS تمت إعادة تسمية هذه الحزمة ولا تحل المشكلة.

jonbesga لقد استخدمت هذا الإصدار.
Ubuntu Xenial (16.04 LTS) (GNU / Linux 4.4.94-mainline-rev1 aarch64)
ppa: جوناثونف / بيثون 3.6

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.4 LTS"

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

واجهت مشكلة مماثلة على Ubuntu 16.04 (على وجه التحديد "من distutils import dist ، sysconfig
ImportError: لا يمكن استيراد اسم 'dist' ") و" sudo apt-get install python3-distutils "تم حله. شكرًا لك!

RandyRomerowakiyamap شكرًا ، apt install python3-distutils يعمل معي أيضًا.

jonbesga أنا على 16.04.4 LTS وقد نجحت. تحرير - أنا أستخدم المتشرد ، لقد قمت بتحديث "صندوق المتشرد" منذ لحظة ، وأنا في 20180504)

بشكل عام ، ليست مشكلة متعلقة بالنقاط إذا سألتني ، فهي تتعلق أكثر بتغليف Ubuntu

wakiyamap شكرًا ، حلك apt install python3-distutils نجح معي أيضًا.
لقد قمت للتو بالترقية إلى Python 3.6.5 على Ubuntu 16.04.4 وفشلت عمليات الاستيراد لـ matplotlib والمكالمات إلى pip مع نفس الخطأ.

يحتاج هذا الإصلاح إلى نشره على نطاق واسع.

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

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