<p>pip ImportError: tidak dapat mengimpor nama 'utama' setelah pembaruan</p>

Dibuat pada 28 Mei 2018  ·  18Komentar  ·  Sumber: pypa/pip

Catatan pengelola: Siapa pun yang masih mengalami masalah ini, silakan lihat #5599.


Lingkungan

  • versi pip: ???
  • Versi Python: 3.5.2
  • OS: Linux sas-linuxmint 4.4.0-92-generic #115-Ubuntu SMP Kam 10 Agustus 09:04:33 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
sas@sas-linuxmint /usr/bin $ pip3 install --user --upgrade pip
Collecting pip
  Using cached https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
ImportError: cannot import name 'main'
sas@sas-linuxmint /usr/bin $ pip3 install --upgrade pip
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'
duplicate

Komentar yang paling membantu

hash -d pip
bekerja untuk saya

Semua 18 komentar

Masalah yang sama

masalah yang sama

Ini sama dengan #5221.

@pradyunsg Mengapa Anda menandai ini sebagai duplikat dari masalah tertutup? Jelas tidak ditutup jika masih menjadi masalah. . .

Dalam hal ini, masalah khusus tampaknya:

  1. pip3 install --user --upgrade pip menginstal pip 10 di situs pengguna, tetapi tidak menghapus salinan situs sistem pip.
  2. Pengguna menjalankan pembungkus sistem dari /usr/bin/pip3 yang berasal dari pip 8 yang disediakan OS. Pembungkus ini mengharapkan untuk melihat pip 8, tetapi tidak karena situs pengguna lebih diprioritaskan daripada situs sistem.

Solusinya adalah dengan menggunakan pembungkus pip yang diinstal ketika Anda menginstal pip 10 di --user . Itu berarti mengubah PATH Anda menjadi yang pertama, atau menggunakan jalur eksplisit saat Anda memanggil pip.

Secara teknis masalah di sini sedikit berbeda dari #5221, karena dalam masalah itu pengguna menimpa pip sistem. Tetapi akar masalahnya sama - menggunakan pembungkus pip yang lebih lama (disediakan oleh OS) terhadap versi pip yang lebih baru. Itu bukan skenario yang didukung, dan Anda tidak dapat menemukannya dengan penggunaan pip yang benar. Jadi tidak ada masalah pip, maka kami menutup masalah saat muncul. Kami mengarahkan pengguna ke #5221 karena di situlah sebagian besar saran tentang cara merapikan sistem Anda setelah pemutakhiran yang salah berada.

https://github.com/pypa/pip/issues/5221#issuecomment -381568428 adalah yang berhasil untuk saya

thang@cq-gpu :/mnt/tmp/tqdscripts/azure/nvtf$ pip3 install --user --upgrade pip
Traceback (panggilan terakhir terakhir):
File "/usr/bin/pip3", baris 9, di
dari pip impor utama
ImportError: tidak dapat mengimpor nama 'utama'

Ini tidak apa-apa bagi saya. Masih masalah yang sama.

Silakan lihat #5599 dan masalah terkait di sana.

hash -d pip
bekerja untuk saya

saya mencopot dan menginstal ulang pip. tampaknya bekerja.

Saya memiliki masalah yang sama, tetapi menghapus dan menginstal ulang dengan apt dan pip tidak berhasil untuk saya.

Saya melihat solusi lain di stackoverflow yang menyajikan cara mudah untuk memulihkan jalur pip3:

sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall

Hai, teman-teman! Saya memiliki masalah yang sama dan menyelesaikannya. Inilah solusi saya.
Pertama, ketika saya menjalankan pip install sesuatu, kesalahannya seperti ini:

`Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'
`

Jadi, saya cd ke file /usr/bin/ dan cat pip3 untuk melihat kode di dalamnya. Saya melihat ini di dalamnya:

`#!/usr/bin/python3
# GENERATED BY DEBIAN
import sys
# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.
from pip import main
if __name__ == '__main__':
    sys.exit(main())
`

Dan kemudian saya pikir itu tidak ada di jalur instalasi. Jadi saya cd ke python3-pip, seperti ini:

cd /.local/lib/python3.5/site-packages/pip
ps: Anda harus cd ke arah yang benar di komputer Anda
Lalu saya cat file untuk melihat perbedaannya (Anda dapat menggunakan operasi lain untuk melihat kode):

cat __main__.py

Dan saya melihat ini:

`from __future__ import absolute_import
import os
import sys
# If we are running from a wheel, add the wheel to sys.path
# This allows the usage python pip-*.whl/pip install pip-*.whl
if __package__ == '':
    # __file__ is pip-*.whl/pip/__main__.py
    # first dirname call strips of '/__main__.py', second strips off '/pip'
    # Resulting path is the name of the wheel itself
    # Add that to sys.path so we can import pip
    path = os.path.dirname(os.path.dirname(__file__))
    sys.path.insert(0, path)

from pip._internal import main as _main  # isort:skip # noqa

if __name__ == '__main__':
    sys.exit(_main())
`

Jadi, dapatkah Anda melihat perbedaannya? Saya dapat mengetahui bahwa saya harus membuat file sama dengan file di /usr/bin/pip3

Jadi, saya menyalin kode di /.local/lib/python3.5/site-packages/pip untuk mengganti kode di /usr/bin/pip3
dan masalahnya hilang!

ps: pip3 atau pip tidak memiliki perbedaan dalam masalah ini.
Saya akan senang jika solusi saya memecahkan masalah Anda!

Gunakan pip3 :+1:

Anda harus mencoba menggunakan
python3 -m pip install --user "nama paket"

@linpanusst benar

sudo ln -sf $( type -P pip ) /usr/bin/pip

Masalah yang sama tetap ada di sini. DeepinOS, 15.7. Yang menarik adalah bahwa sebagai pengguna biasa gagal tetapi tampaknya berfungsi dengan Sudo dengan baik:

$ pip3 search audioshare
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'
$ sudo pip3 search librosa
librosa (0.6.2)  - Python module for audio and music processing

Solusi yang disarankan sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall tidak membuat perbedaan.

Solusi yang diposting di stackoverflow menyarankan pengeditan /usr/bin/pip3 membantu pengguna biasa, tetapi merusak sudo :

$ sudo pip3 search librosa
Traceback (most recent call last):
  File "/usr/bin/pip3", line 13, in <module>
    sys.exit(__main__._main())
AttributeError: module 'pip.__main__' has no attribute '_main'

Silakan lihat #5599 dan masalah terkait di sana.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat