Pip: ImportError: tidak dapat mengimpor nama 'sysconfig' (Ubuntu 16.04)

Dibuat pada 3 Mei 2018  ·  16Komentar  ·  Sumber: pypa/pip

  • Versi pip:
  • Versi Python: 3.6.5
  • Sistem operasi: Ubuntu 16.04.4 LTS

Keterangan:

Masalah serupa dengan #5356 tetapi dengan versi Ubuntu yang berbeda. Solusi yang diusulkan di #5356 tidak menyelesaikan masalah dengan versi Ubuntu ini

Setelah menginstal Python 3.6 dari repositori jonathonf dalam versi Ubuntu yang bersih, saya menemukan kesalahan berikut saat mencoba menginstal Pip

Perhatikan bahwa mencoba menginstal Pip dengan versi Python yang datang secara default (3.5.2 ) tidak menimbulkan masalah.

Apa yang saya jalankan:

python3.6 get-pip.py

Pesan kesalahan:

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'

Solusi yang saya temukan

  • Unduh sumber Python dari https://www.python.org/
  • Dekompresi kode sumbernya
  • Instal dependensi berikut:
    sudo apt-get install zlib1g-dev (diperlukan untuk mengkompilasi Python)
    sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev (dibutuhkan oleh Pip untuk membuat permintaan SSL)
  • Kompilasi dan instal Python:
./configure
make
make install
  • Python 3.6 dengan Pip harus diinstal.
downstream auto-locked support

Komentar yang paling membantu

Saya juga melihat kesalahan serupa.

$ 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'

Namun, dengan menginstal python3-distutils adalah mungkin untuk menghindari kesalahan ini.
sudo apt-get install python3-distutils

Semua 16 komentar

Jika Anda ingin membaca deskripsi masalah saya, Anda akan menemukan bahwa saya sudah melihat yang itu. Solusi yang diusulkan di sana tidak berlaku dengan versi Ubuntu ini.

Tidak perlu bersikap kasar. Tetapi bagi saya mengkompilasi python pada Anda di atasnya bukanlah solusi.

Kesalahan impor itu penyebabnya. Saya akan mencoba untuk mereproduksi nanti.

@jonbesga Terima kasih atas solusinya, juga mengalami masalah ini dengan versi python 3.6 dan ubuntu yang sama persis...

@ Tarliton saya setuju itu bukan solusi. Saya akan mengganti namanya sebagai solusi.

Mengenai kekasarannya, maaf tentang itu, tetapi memberi tahu saya untuk melihat masalah yang telah saya rujuk dalam masalah saya menunjukkan bahwa Anda memposting komentar tanpa membaca masalah saya di tempat pertama.

@jonbesga saya buruk, tetapi saya seharusnya mengatakan untuk mencoba menjalankan perintah yang disebutkan masalah lain.
Suka:

python -c "from distutils import sysconfig"

Saya baru saja melakukannya di VM dengan Ubuntu 16.04.2 dan tidak ada masalah. Dan menginstal pip.
Saya akan mencoba nanti dengan 16.04.4.

Saya dapat mengonfirmasi bahwa di 16.04.4,

python3.6 -c "from distutils import sysconfig"

Menghasilkan kesalahan berikut:

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'

Mencoba menginstal Python 3.6 dari ppa:deadsnakes/ppa alih-alih dari ppa:jonathonf/python-3.6 dan menginstal Pip dengan benar. Sepertinya versi jonathonf rusak dalam beberapa hal.

Sunting: Perhatikan bahwa beberapa komentar di jawaban Stack Overflow mengatasi masalah ini dengan repositori jonathonf

Saya dapat mengonfirmasi bahwa menghapus ppa:jonathonf/python-3.6 dan kemudian menambahkan ppa:deadsnakes/ppa dan menginstal ulang python3.6 memperbaiki masalah ini di Linux Mint 18.3.

Info tentang menghapus PPA saat ini: https://askubuntu.com/a/173209/823909
Menambahkan PPA Python3.6 baru: https://askubuntu.com/questions/865554/how-do-i-install-python-3-6-using-apt-get

@tomrunia Saya menyarankan Anda untuk mengubah tautan ke https://askubuntu.com/a/310 karena tautan Anda saat ini tidak mengarah ke jawaban terbaik.

Saya juga melihat kesalahan serupa.

$ 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'

Namun, dengan menginstal python3-distutils adalah mungkin untuk menghindari kesalahan ini.
sudo apt-get install python3-distutils

@wakiyamap Sepertinya itu solusi yang berfungsi untuk #5356 dengan Ubuntu 18.04 LTS. Namun, di Ubuntu 16.04.4 LTS paket itu telah diganti namanya dan tidak menyelesaikan masalah.

@jonbesga saya menggunakan versi ini.
Ubuntu Xenial (16.04 LTS) (GNU/Linux 4.4.94-mainline-rev1 aarch64 )
ppa: jonathonf/python-3.6

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

CPU berbeda, jadi mungkin tidak terkait dengan kasus ini.
maaf.

Saya memiliki masalah serupa di Ubuntu 16.04 (khususnya "dari distutils import dist, sysconfig
ImportError: tidak dapat mengimpor nama 'dist'") dan "Sudo apt-get install python3-distutils" menyelesaikannya. Terima kasih!

@RandyRomero @wakiyamap terima kasih, apt install python3-distutils bekerja untuk saya juga.

@jonbesga saya menggunakan 16.04.4 LTS dan berhasil. EDIT - Saya menggunakan gelandangan, melakukan "pembaruan kotak gelandangan" beberapa saat yang lalu, saya menggunakan 20180504)

Secara umum, bukan masalah terkait pip jika Anda bertanya kepada saya, ini lebih berkaitan dengan pengemasan Ubuntu

@wakiyamap Terima kasih, solusi Anda apt install python3-distutils bekerja untuk saya juga.
Saya baru saja memutakhirkan ke Python 3.6.5 di Ubuntu 16.04.4 dan mengimpor untuk matplotlib dan panggilan ke pip semuanya gagal dengan kesalahan yang sama.

Perbaikan ini perlu disebarluaskan.

Utas ini telah dikunci secara otomatis karena tidak ada aktivitas terbaru setelah ditutup. Silakan buka edisi baru untuk bug terkait.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat