Pip: Setelah pip 10 memutakhirkan pada pyenv "ImportError: tidak dapat mengimpor nama 'utama'"

Dibuat pada 15 Apr 2018  ·  68Komentar  ·  Sumber: pypa/pip

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


  • Versi pip: 10.0
  • Versi Python: 3.6.2
  • Sistem operasi: Ubuntu 16.04

Keterangan:

Setelah memutakhirkan pip dari 9,03 ke 10,0 melalui pip install pip --user --upgrade di lingkungan pyenv, pip menolak untuk memulai dan menaikkan ini sebagai gantinya:

Traceback (most recent call last):
  File "/home/kleinernull/.pyenv/versions/3.6.2/bin/pip", line 7, in <module>
    from pip import main
ImportError: cannot import name 'main'
Traceback (most recent call last):
  File "/home/kleinernull/.pyenv/versions/3.6.2/bin/pip", line 7, in <module>
    from pip import main
ImportError: cannot import name 'main'

Isi dari ketiga file pip yang berbeda adalah sama:

~ ⟩ cat .pyenv/versions/3.6.2/bin/pip                                                                            ~
#!/home/kleinernull/.pyenv/versions/3.6.2/bin/python3.6

# -*- coding: utf-8 -*-
import re
import sys

from pip._internal import main as _main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(_main())

~ ⟩ cat .pyenv/versions/3.6.2/bin/pip3                                                                           ~
#!/home/kleinernull/.pyenv/versions/3.6.2/bin/python3.6


# -*- coding: utf-8 -*-
import re
import sys

from pip import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

~ ⟩ cat .pyenv/versions/3.6.2/bin/pip3.6                                                                         ~
#!/home/kleinernull/.pyenv/versions/3.6.2/bin/python3.6

# -*- coding: utf-8 -*-
import re
import sys

from pip import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

Hal yang sama terjadi dengan lingkungan 3.6.1 saya juga.

Perbaikan sementara

Menurut kode cabang master, impor harus sebagai berikut:

#!/home/kleinernull/.pyenv/versions/3.6.2/bin/python3.6

# -*- coding: utf-8 -*-
import re
import sys

from pip._internal import main as _main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(_main())

Dan ini menyelesaikan masalah. Saya tidak tahu apakah ini ada hubungannya dengan pemutakhiran itu sendiri atau dengan pyenv sebagai lingkungan.

duplicate

Komentar yang paling membantu

Perbaikan bagi kami adalah menyematkan ke pip 9.03, jadi:

pip install --upgrade pip==9.0.3

dari pada

pip install -U pip

perbaikan yang jelas tetapi jika itu membantu orang lain!

Semua 68 komentar

Hai @KleinerNull!

Saya tidak tahu apakah ini ada hubungannya dengan pemutakhiran itu sendiri atau dengan pyenv sebagai lingkungan.

Saya pikir ini adalah masalah lingkungan. Saya sarankan Anda membuka masalah di pyenv karena saya pikir orang-orang di sana akan berada dalam posisi yang lebih baik untuk mengomentari ini/memperbaikinya.

@pradyunsg

Saya membuka masalah di repo pyenv.

Kami juga menderita yang satu ini, saluran pipa kami rusak. Operasi yang dijalankan:

 11 #upgrade pip and install uwsgi
 12 pip install --user --upgrade pip
 13 pip install uwsgi

Ubuntu 16.04
Python3.6

Kami menghadapi masalah yang sama.

// in host
$ docker pull ubuntu:xenial
$ docker run --name pip-test --rm -it ubuntu:xenial bash

// in container
# apt update
# apt install -y python-dev python-pip
# pip install --upgrade pip
Collecting pip
  Downloading pip-10.0.0-py2.py3-none-any.whl (1.3MB)
    100% |################################| 1.3MB 865kB/s 
Installing collected packages: pip
  Found existing installation: pip 8.1.1
    Not uninstalling pip at /usr/lib/python2.7/dist-packages, outside environment /usr
Successfully installed pip-10.0.0
# pip install requests
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

Sama di sini .. Output yang sama persis dengan @HayaoSuzuki dan kami tidak menggunakan pyenv

Jika Anda mendapatkan ini di luar pyenv, saya curiga itu lebih mungkin terkait dengan #5221

Sekedar menyebutkan bahwa pip install --user --upgrade pip di Ubuntu 16.04 juga rusak.

Menariknya menginstal pip dengan mudah, menginstal 10.0.0 tetapi tidak menunjukkan masalah
```
// di host
$ buruh pelabuhan tarik ubuntu:xenial
$ docker run --name pip-test --rm -it ubuntu:xenial bash

// dalam wadah

pembaruan yang tepat

apt install -y python-setuptools

easy_install pip

Diinstal /usr/local/lib/python2.7/dist-packages/pip-10.0.0-py2.7.egg
Memproses dependensi untuk pip
Ketergantungan pemrosesan selesai untuk pip

permintaan pemasangan pip

Mengumpulkan permintaan
Mengunduh request-2.18.4-py2.py3-none-any.whl (88kB)
100% |###########################################| 92kB 2.9MB/dtk
Mengumpulkan sertifikat>=2017.4.17 (dari permintaan)
Mengunduh certifi-2018.1.18-py2.py3-none-any.whl (151kB)
100% |###########################################| 153kB 4.4MB/dtk
Mengumpulkan chardet<3.1.0,>=3.0.2 (dari permintaan)
Mengunduh chardet-3.0.4-py2.py3-none-any.whl (133kB)
100% |###########################################| 143kB 4,5MB/dtk
Mengumpulkan idna<2,7,>=2,5 (dari permintaan)
Mengunduh idna-2.6-py2.py3-none-any.whl (56kB)
100% |###########################################| 61kB 7.4MB/dtk
Mengumpulkan urllib3<1.23,>=1.21.1 (dari permintaan)
Mengunduh urllib3-1.22-py2.py3-none-any.whl (132kB)
100% |###########################################| 133kB 4.4MB/s
Menginstal paket yang dikumpulkan: certifi, chardet, idna, urllib3, permintaan
Berhasil menginstal certifi-2018.1.18 chardet-3.0.4 idna-2.6 request-2.18.4 urllib3-1.22
```

yang tidak mengherankan, karena pip itu dipasang di tempat yang berbeda sehingga tidak lagi memengaruhi pip global - itu juga berarti Anda sekarang memiliki perangkat kerja yang sangat menarik untuk python

Meskipun saya menghargai bahwa masalah mendasar yang dilaporkan di sini dan di https://github.com/pypa/pip/issues/5221 adalah lingkungan, penyebabnya terutama adalah impor from pip import main rusak karena paket pip.main telah dipindahkan ke pip._internal.main . Akan sepele untuk menambahkan tautan dari pip.main ke pip._internal.main untuk memperbaikinya (sedangkan memperbaiki lingkungan membutuhkan banyak pekerjaan di banyak lokasi bagi banyak orang). Apakah ada alasan bagus untuk tidak melakukan ini?

@davidjlloyd

Komentar ini memberikan beberapa informasi tentang untuk tidak melakukan ini, tetapi saya tidak sepenuhnya yakin apakah ini juga penting untuk skrip pip itu sendiri. Namun, itu memecahkan masalah bagi saya.

@davidjlloyd Karena from pip import main tidak pernah didukung, pada dasarnya. Dan meskipun mudah untuk mengatakan "ya, tetapi ini adalah API yang sederhana dan hanya berfungsi", sebenarnya tidak - kami memiliki banyak laporan bug dari orang-orang yang mengharapkan perilaku tertentu darinya, yang tidak kami penuhi ( menjalankan pip.main di beberapa utas, mengharapkan pip.main untuk tidak mengubah konfigurasi sistem logging, ...)

Daripada terus menjelaskan kepada orang-orang bahwa mereka tidak boleh melakukan ini, dan terus-menerus berurusan dengan fakta bahwa orang-orang berasumsi "jika saya dapat menemukan fungsi untuk dipanggil, itu didukung" kami memindahkan semuanya ke namespace _internal ke membuatnya sangat jelas bahwa Anda tidak seharusnya menyebutnya.

Sebagian besar keluhan datang dari orang-orang yang menggunakan pip.main - yang ironis, karena sangat mudah untuk memanggil pip dengan cara baris perintah yang didukung melalui subprocess . Jadi dari semua kemungkinan kerusakan, ini adalah yang paling mudah untuk diperbaiki - namun orang masih belum memperbaikinya, bahkan setelah berbulan-bulan peringatan. (Meskipun untuk bersikap adil terhadap distribusi Linux, mereka tidak mendukung orang untuk meningkatkan paket sistem mereka menggunakan pip, jadi laporan seperti #5221 dari kasus di mana skrip yang disediakan distro rusak pada dasarnya adalah kesalahan pengguna, bukan kegagalan distro untuk mengatasi pip 10 perubahan - sesuatu yang saya yakin mereka tangani dengan sangat baik).

Saya juga dapat mengonfirmasi bahwa masalah ini benar-benar menghancurkan proses pembuatan gambar buruh pelabuhan saya yang sebelumnya sangat stabil, berikut adalah contoh hal-hal minimal yang saya lakukan di dalam proses pembuatan gambar buruh pelabuhan saya:

+ pip install -U pip setuptools
Collecting pip
  Downloading https://files.pythonhosted.org/packages/62/a1/0d452b6901b0157a0134fd27ba89bf95a857fbda64ba52e1ca2cf61d8412/pip-10.0.0-py2.py3-none-any.whl (1.3MB)
Collecting setuptools
  Downloading https://files.pythonhosted.org/packages/20/d7/04a0b689d3035143e2ff288f4b9ee4bf6ed80585cc121c90bfd85a1a8c2e/setuptools-39.0.1-py2.py3-none-any.whl (569kB)
Installing collected packages: pip, setuptools
  Found existing installation: pip 8.1.1
    Not uninstalling pip at /usr/lib/python2.7/dist-packages, outside environment /usr
Successfully installed pip-10.0.0 setuptools-39.0.1

...

+ pip install jupyter opencv-python plyfile pandas
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

Perbaikan bagi kami adalah menyematkan ke pip 9.03, jadi:

pip install --upgrade pip==9.0.3

dari pada

pip install -U pip

perbaikan yang jelas tetapi jika itu membantu orang lain!

@peteflorence Jadi mungkin saat menjalankan buruh pelabuhan, Anda membuat gambar dasar, lalu menjalankan pip install -U pip setuptools sebagai root di gambar itu? Apakah ada alasan Anda memerlukan pip/setuptools terbaru jika yang Anda lakukan hanyalah menginstal paket lain dengannya? Tidak bisakah Anda memutakhirkan ke pip/setuptools terbaru yang tersedia sebagai paket distro?

Saya menghargai bahwa ini adalah masalah bagi Anda - tampaknya umum untuk build buruh pelabuhan lebih cenderung melakukan hal-hal sebagai root daripada jika Anda berada di OS normal (mungkin karena gambar buruh pelabuhan diisolasi). Tapi itu masih bukan ide yang baik untuk melakukan ini. Masalahnya adalah pip tidak mengelola /usr/bin/pip , jadi kami tidak memiliki cara untuk "memperbaikinya" agar berfungsi dengan pip 10.

Yang dapat Anda lakukan adalah beralih dari menggunakan /usr/bin/pip menjadi menggunakan python -m pip . Itu masih tidak didukung, dan mungkin mengenai masalah lain (saya tidak tahu perubahan apa yang mungkin dilakukan vendor OS dasar Anda pada pip sistem) tetapi itu akan menghindari masalah di /usr/bin/pip saat Anda memilah-milah yang lebih lama- solusi istilah untuk masalah Anda.

Menyematkan ke pip 9 juga merupakan solusi, tetapi ini menimbulkan pertanyaan, mengapa memutakhirkan pip OS Anda sama sekali jika pip 9 OK? Apakah vendor Anda tidak menawarkan versi paket pip 9?

Daripada terus menjelaskan kepada orang-orang bahwa mereka tidak boleh melakukan ini, dan terus-menerus berurusan dengan fakta bahwa orang berasumsi "jika saya dapat menemukan fungsi untuk dipanggil, itu didukung" kami memindahkan semuanya ke _internal namespace untuk membuatnya sangat jelas bahwa Anda tidak seharusnya menyebutnya.

Saya tidak yakin bahwa secara agresif melanggar penggunaan yang ada dari fitur yang tidak didukung alih-alih mencela fitur tersebut untuk beberapa rilis utama adalah pendekatan terbaik. Reaksi awal kami adalah menyematkan pip kembali ke 9.0.3, dan pengembang yang lebih malas mungkin akan menyebutnya sehari pada saat itu. Ini akan membuat banyak pengguna dengan keras kepala berpegang teguh pada rilis lama, yang saya ragu diinginkan oleh siapa pun. Namun motivasi Anda masuk akal, dan hasil akhirnya sama.

Untuk setiap pengguna yang mengalami masalah ini, saya pikir solusi terbaik untuk mengganti instalasi sistem atau pyenv disediakan oleh @standag di sini: https://github.com/pypa/pip/issues/5221#issuecomment -381568428

Solusi ini harus bekerja untuk siapa saja yang membangun di Docker seperti @peteflorence tanpa menyematkan ke rilis basi atau apa pun yang mengerikan seperti itu.

Perbaiki sementara pip pemutakhiran menggunakan.

curl https://bootstrap.pypa.io/get-pip.py | python3

Alih-alih pip install -U pip

Untuk pip2 pip2 install --upgrade pip

Saya memutakhirkan dengan pyenv, baik python2 dan python3, sekarang pip2 tidak berfungsi dan pip3 berfungsi
Setelah membandingkan pip2 dan pip3, perbedaannya adalah garis impor

pip2
from pip import main

pip3
from pip._internal import main

Setelah mengganti baris impor pip2 dengan versi pip3, itu berfungsi

Punya masalah yang sama, hehe.

Masalah yang sama, tetapi diselesaikan dengan solusi: https://github.com/pypa/pip/issues/5240#issuecomment -381673100

Masalah yang sama:

+ pip install --upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/62/a1/0d452b6901b0157a0134fd27ba89bf95a857fbda64ba52e1ca2cf61d8412/pip-10.0.0-py2.py3-none-any.whl
 (1.3MB)
Installing collected packages: pip
  Found existing installation: pip 8.1.1
    Not uninstalling pip at /usr/lib/python2.7/dist-packages, outside environment /usr
Successfully installed pip-10.0.0
+ pip install awscli requests simplejson
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

Sekarang aneh, ia menginstal pip 10 ke /usr/local/bin, dan itu pertama di PATH sebelum /usr/bin, tetapi tidak menggunakannya, tidak sampai Anda pergi ke Shell baru. Saya melihat ini terjadi ketika saya pergi ke kotak ini untuk mencoba menginstal awscli yang lebih baru dengan tangan ...

$ python --version
Python 2.7.12
$ pip --version
pip 10.0.0 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)
$ sudo pip install --upgrade awscli 
 <blah blah>
$ aws --version
aws-cli/1.11.13 Python/3.5.2 Linux/4.4.0-1049-aws botocore/1.4.70
$ /usr/local/bin/aws --version
aws-cli/1.15.4 Python/2.7.12 Linux/4.4.0-1049-aws botocore/1.10.4
$ which aws
/usr/local/bin/aws
$ echo $PATH
/home/ec2-user/bin:/home/ec2-user/.local/bin:/opt/bamboo-elastic-agent/bin:/opt/jdk-8/bin:/opt/maven-2.1/bin:/opt/maven-1.0.2/bin:/opt/ant-1.9/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/bin:/bin:/opt/puppetlabs/bin

@pfmoore terima kasih atas komentarnya. Ya gambar buruh pelabuhan kami tampaknya membutuhkan pip 9 dan kami mewarisi dari gambar buruh pelabuhan nvidia cuda 8.0 dan banyak hal lain yang tidak boleh memilikinya. Menyematkan adalah solusi yang baik bagi kami -- ini adalah sistem penelitian, kami ingin kode dikunci secara wajar. Tapi ya jelas bagi banyak orang lain Anda akan menginginkan solusi yang membawa Anda ke kompatibilitas dengan pip 10

Sekarang aneh, ia menginstal pip 10 ke /usr/local/bin

Saya bukan pengguna Unix, tetapi saya ingat melihat beberapa orang berbicara tentang "mengulangi" di shell? Mungkinkah itu masalahnya? Apakah pencarian jalur cache bash dan perlu diminta untuk mengulang pencarian jalur?

Ya gambar buruh pelabuhan kami tampaknya membutuhkan pip 9 ...

Keren - tentu saja menyematkan ke pip 9 adalah solusi yang masuk akal dalam kasus Anda. Saya sedikit gelisah tentang membiarkan saran untuk "hanya menyematkan ke pip 9" tidak tertandingi, karena ada risiko orang akan melihatnya dan menyalinnya secara membabi buta, hanya menunda saat mereka perlu memperbaiki lingkungan mereka. Tetapi tentu saja memikirkan kebutuhan Anda dan memutuskan bahwa menyematkan berfungsi untuk Anda baik-baik saja. Jadi maaf telah menggunakan komentar Anda sebagai kotak sabun :-)

Kami menyematkan ke pip 9 dan itu "memperbaiki" kami, tetapi tentu saja kami tertarik untuk dapat menggunakan pip 10 di beberapa titik.

coba gunakan pip2 install xx @HayaoSuzuki

cara kembali ke pip 9.0.0..
Itu masih menunjukkan kesalahan yang sama kepada saya. Tolong tulis semua langkahnya

@swtt123 Anda dapat mencoba pip install pip==9.0.1

pip 10.0, saya juga menghadapi

AttributeError: 'module' object has no attribute 'main'

saat mencoba menggunakan pip.main(['install', '-r', 'requirements.txt'])

@p00j4 Mengimpor pip dari dalam program Anda tidak didukung - lihat dokumen

Oh! Saya mengerti, sekarang dipaksa untuk mengubah banyak tempat.
Terima kasih @pfmoore untuk kepalanya.

Hati-hati terhadap bash caching lokasi yang dapat dieksekusi:

$ which pip
/usr/bin/pip

$ pip install --user pip
Collecting pip
(...)
Successfully installed pip-10.0.0

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

$ which pip
/usr/bin/pip

$ hash -d pip  # this clears the 'pip' entry from bash's executables locations hash table

$ which pip
/home/zwinny/.local/bin/pip

$ pip --version
pip 10.0.0 from /home/zwinny/.local/lib/python2.7/site-packages/pip (python 2.7)

Saya telah membuat instalasi Raspbian baru pada Raspberry Pi 3B+. Tidak ada yang istimewa - konfigurasi vanilla yang cantik - dan sejauh ini, semuanya berjalan dengan baik.

Saya baru saja mencapai langkah terakhir dalam proses instalasi saya:

pip install --upgrade pip

Collecting pip
  Downloading https://files.pythonhosted.org/packages/62/a1/0d452b6901b0157a0134fd27ba89bf95a857fbda64ba52e1ca2cf61d8412/pip-10.0.0-py2.py3-none-any.whl (1.3MB)
    100% |████████████████████████████████| 1.3MB 101kB/s 
Installing collected packages: pip
Successfully installed pip-10.0.0

...dan sekarang pip benar-benar rusak:

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

Sesuai komentar di atas, saya telah mengonfirmasi bahwa ~i/.local/bin/pip berjalan dengan baik. Kesalahan terjadi dengan /usr/bin/pip. Menjalankan hash -d pip tidak memperbarui lokasi yang di-cache.

Penurunan versi secara paksa ke 9.0.1 (melalui baris opsi -Iv dan --force-reinstall) juga tidak menyelesaikan masalah. Rupanya, satu-satunya solusi, selain tidak memutakhirkan pip, adalah menjalankan pip dari ~/.local/bin/pip.

python -m pip install --upgrade pip 

Bekerja untuk saya. Saya harap itu membantu seseorang.

Saya menginstal distro Ubuntu baru hari ini dan mencoba menjalankan dan menjalankan beberapa paket Python dasar. Saya diminta untuk memutakhirkan pip, jadi saya menjalankan perintah yang diperintahkan. Pip yang ditingkatkan ini ke versi 10, yang tampaknya rusak dengan kesalahan yang sama di bagian atas utas ini. Saya belum melakukan apa pun selain apa yang akan dilakukan pengguna normal untuk memutakhirkan pip dan menginstal paket favorit mereka. Bahkan tidak menggunakan pyenv.

Tidak ada solusi di sini yang memperbaiki masalah saya. Jika saya menjalankan python -m pip install --upgrade pip saya mendapatkan "Persyaratan sudah up-to-date". Jika saya mencoba menurunkan versi ke versi 9, saya mendapatkan kesalahan awal yang sama:

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

Setelah membaca ulang utas ini, solusi @sfsdfd untuk menggunakan ~/.local/bin/pip akhirnya berhasil:

~/.local/bin/pip install my-favourite-package

Rupanya ini berfungsi dengan (berhasil) kembali ke versi pip saya yang lebih lama. Menambahkan ini ke ~/.bashrc adalah perbaikan yang lebih baik untuk saya:

export PATH=$PATH:~/.local/bin

Cukup me-restart terminal saya memperbaikinya untuk saya.

Saya telah memperbaiki masalah ini dengan memperbarui kode di /usr/bin/pip , ubah from pip import main menjadi from pip._internal import main .

Berikut rinciannya:

$ dpkg -S /usr/bin/pip
python-pip: /usr/bin/pip
$ dpkg -S /usr/bin/pip2
python-pip: /usr/bin/pip2
$ apt-file search /usr/bin/pip
colorized-logs: /usr/bin/pipetty
pipebench: /usr/bin/pipebench
pipemeter: /usr/bin/pipemeter
pipexec: /usr/bin/pipexec
python-pip: /usr/bin/pip
python-pip: /usr/bin/pip2
python3-pip: /usr/bin/pip3
rt-tests: /usr/bin/pip_stress

Setelah pip install --upgrade pip :

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

$ cat /usr/bin/pip
#!/usr/bin/python
# 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())

Setelah memperbarui /usr/bin/pip :

$ cat /usr/bin/pip
#!/usr/bin/python
# 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
from pip._internal import main
if __name__ == '__main__':
    sys.exit(main())

$ pip --version
pip 10.0.0 from /home/devops/.local/lib/python2.7/site-packages/pip (python 2.7)

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

Informasi sistem saya:

$ uname -a
Linux devops-kubernetes-master 4.13.0-38-generic #43-Ubuntu SMP Wed Mar 14 15:20:44 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

$ cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=17.10
DISTRIB_CODENAME=artful
DISTRIB_DESCRIPTION="Ubuntu 17.10"
NAME="Ubuntu"
VERSION="17.10 (Artful Aardvark)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 17.10"
VERSION_ID="17.10"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=artful
UBUNTU_CODENAME=artful

$ python --version
Python 2.7.14

$ apt list --installed | grep python-

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libpython-all-dev/artful,now 2.7.14-2ubuntu1 amd64 [installed]
libpython-dev/artful,now 2.7.14-2ubuntu1 amd64 [installed,automatic]
libpython-stdlib/artful,now 2.7.14-2ubuntu1 amd64 [installed,automatic]
python-all/artful,now 2.7.14-2ubuntu1 amd64 [installed,automatic]
python-all-dev/artful,now 2.7.14-2ubuntu1 amd64 [installed,automatic]
python-apt-common/artful,artful,now 1.4.0~beta3build2 all [installed]
python-asn1crypto/artful,artful,now 0.22.0-1 all [installed,automatic]
python-cffi-backend/artful,now 1.9.1-2build2 amd64 [installed,automatic]
python-crypto/artful-updates,artful-security,now 2.6.1-7ubuntu0.1 amd64 [installed,automatic]
python-cryptography/artful,now 1.9-1 amd64 [installed,automatic]
python-dbus/artful,now 1.2.4-1build3 amd64 [installed,automatic]
python-dev/artful,now 2.7.14-2ubuntu1 amd64 [installed,automatic]
python-enum34/artful,artful,now 1.1.6-1 all [installed,automatic]
python-gi/artful,now 3.24.1-2build1 amd64 [installed,automatic]
python-idna/artful,artful,now 2.5-1 all [installed,automatic]
python-ipaddress/artful,artful,now 1.0.17-1 all [installed,automatic]
python-keyring/artful,artful,now 10.4.0-1 all [installed,automatic]
python-keyrings.alt/artful,artful,now 2.2-2 all [installed,automatic]
python-minimal/artful,now 2.7.14-2ubuntu1 amd64 [installed,automatic]
python-pip/artful,artful,now 9.0.1-2 all [installed]
python-pip-whl/artful,artful,now 9.0.1-2 all [installed,automatic]
python-pkg-resources/artful,artful,now 36.2.7-2 all [installed,automatic]
python-secretstorage/artful,artful,now 2.3.1-2 all [installed,automatic]
python-setuptools/artful,artful,now 36.2.7-2 all [installed,automatic]
python-setuptools-doc/artful,artful,now 36.2.7-2 all [installed]
python-six/artful,artful,now 1.10.0-4 all [installed,automatic]
python-talloc/artful,now 2.1.9-2ubuntu1 amd64 [installed]
python-wheel/artful,artful,now 0.29.0-2 all [installed,automatic]
python-xdg/artful,artful,now 0.25-4 all [installed,automatic]

Saya memperbaikinya dengan cara ini:

$pip --versi
Traceback (panggilan terakhir terakhir):
File "/usr/bin/pip", baris 9, di
dari pip impor utama
ImportError: tidak dapat mengimpor nama utama
$ sudo apt-get hapus python-pip
$ sudo apt-get install python-pip
$pip --versi
pip 10.0.0 dari /home/user/.local/lib/python2.7/site-packages/pip (python 2.7)

Saya harap itu membantu seseorang.

Bahkan setelah mengikuti semuanya, saya tidak dapat menurunkan versi pip. Terus mendapatkan kesalahan.
Inilah cara saya memperbaikinya:

$ sudo apt-get hapus python-pip
$pip -v
bash: /usr/bin/pip: Tidak ada file atau direktori seperti itu

tapi ketika saya mencoba ini$ python -m pip -Vpip 10.0.0 dari /home/user/.local/lib/python2.7/site-packages/pip (python 2.7)

jadi saya menghapus folder lengkap pip
$ sudo rm -r /home/user/.local/lib/python2.7/site-packages/pip*

sekali lagi saya coba ini
$ python -m pip -V
/usr/bin/pip: Tidak ada modul bernama pip

lalu instal pip lagi
$ sudo apt install python-pip
$ python -m pip -V
pip 8.1.1 dari usr/lib/python2.7/dist-packages (python 2.7)

Semoga ini memecahkan masalahnya

SETELAH BUANG 3 JAM INI YANG SAYA DAPAT

UNTUK MENGHAPUS pip 10.0.0:
sudo apt-get hapus python-pip

tetapi kemudian Anda tidak akan dapat menginstal versi pip yang diperlukan dengan benar dengan metode langsung.

UNTUK MENGURANGI KE VERSI KERJA YANG DIKENAL SETELAH MENGINSTAL
ketika pip10 melempar kesalahan: ImportError: tidak dapat mengimpor nama main
Anda harus menjalankan:
python -m pip install pip==KNOW_WORKING_VERSION>

UNTUK MENGINSTAL PAKET APAPUN MENGGUNAKAN PIP10:
sudo python -m pip install PACKAGE_NAME
ini berhasil.

Bersulang :)

Masalah yang sama, perbaiki masalah: instal ulang penuh: python-pip

cukup masuk kembali Shell seperti yang disebutkan di sini
https://github.com/pypa/pip/issues/5240#issuecomment -382262586

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

heh ... apa yang saya kecuali ...

Saya baru saja membuka gulungan instalasi pip saya.
python -m pip install --user --upgrade pip==9.0.3

Saya ingin melaporkan bahwa masalah ini juga terjadi pada build Windows saat menggunakan AppVeyor untuk CI:
Hasilnya adalah sebagai berikut:

Running Install scripts
SET PATH=%PYTHON%;%PYTHON%\Scripts;%PATH%
pip install --disable-pip-version-check --user --upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl (1.3MB)
Installing collected packages: pip
Successfully installed pip-10.0.1
pip install -U setuptools
Traceback (most recent call last):
  File "c:\python27-x64\lib\runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "c:\python27-x64\lib\runpy.py", line 72, in _run_code
    exec code in run_globals
  File "C:\Python27-x64\Scripts\pip.exe\__main__.py", line 5, in <module>
ImportError: cannot import name main
Command exited with code 1

Saya memiliki: pip install --disable-pip-version-check --user --upgrade pip dalam beberapa skrip appveyor.yml , berdasarkan rekomendasi dari contoh ini: https://github.com/ogrisel/python-appveyor-demo/blob/master/appveyor.yml #L111

Ini telah bekerja dengan baik hingga pip 10.x, dan saya menduga jika orang lain telah membuat appveyor.yml berdasarkan ini juga akan mengalami masalah ini.

Beralih ke easy_install -U pip berhasil, tetapi saya memiliki beberapa repo yang berfungsi sebelumnya yang sekarang perlu diperbarui agar berfungsi dengan pip 10.x.

Sepertinya pendekatan yang disarankan untuk pengaturan CI harus tetap menggunakan 9.0.3 atau menggunakan easy_install.

Sepertinya pendekatan yang disarankan untuk pengaturan CI harus tetap menggunakan 9.0.3 atau menggunakan easy_install.

Pendekatan yang disarankan adalah menghilangkan ketergantungan perpustakaan/aplikasi/alat Anda dari detail implementasi internal pip. easy_install tidak lagi ditingkatkan secara aktif AFAIK dan kemungkinan tidak mendukung banyak hal yang dilakukan pip.

Untuk masalah spesifik Anda, Anda mungkin dapat memperbaikinya dengan menjalankan python -m pip install --force-reinstall pip , untuk memperbaiki skrip yang rusak. Jika tidak, silakan ajukan masalah baru.

Pendekatan yang disarankan adalah menghilangkan ketergantungan perpustakaan/aplikasi/alat Anda dari detail implementasi internal pip. easy_install tidak lagi ditingkatkan secara aktif AFAIK dan kemungkinan tidak mendukung banyak hal yang dilakukan pip.

Saya kira Anda tidak membaca sisa postingnya. Dia mengacu pada penggunaan easy_install untuk menginstal pip, bukan alih-alih pip:

Beralih ke easy_install -U pip berhasil...

Dia juga tidak bergantung pada detail implementasi internal pip. Dia menggunakan spin-up baru AppVeyor dan memutakhirkan pip menggunakan perintah yang dia tentukan, dan tidak lebih:

pip install --disable-pip-version-check --user --upgrade pip

Banyak orang lain di utas ini mengalami masalah yang sama. Anda dapat mereproduksi ini dengan instalasi dasar pip tanpa melakukan sesuatu yang khusus atau bergantung pada internal pip. Ini telah didokumentasikan oleh banyak orang di posting di atas.

@ikreymer Masalah yang tampaknya Anda maksud ada di Appveyor, yang menjalankan Windows. Masalah yang dibahas di sini terkait dengan pyenv yang merupakan utilitas Unix eksklusif.

Saya tidak tahu tentang @pradyunsg , tapi saya semakin bingung dengan berbagai masalah yang dibahas. Akar penyebabnya mudah - pip (sengaja) memindahkan API internal, dan ini menyebabkan masalah bagi orang-orang yang mengandalkan alat yang menggunakannya, baik secara langsung maupun tidak langsung. Tapi itu bukan sesuatu yang akan diubah. Jadi, jika kita ingin membantu pengguna menemukan solusi untuk masalah spesifik mereka, kita perlu menjaga agar diskusi tetap terfokus pada satu masalah pada satu waktu.

Jadi bolehkah saya bertanya - jika Anda memerlukan bantuan dengan masalah di Appveyor, bisakah Anda membuka masalah baru yang menjelaskan masalah tersebut, dan kami akan memindahkan diskusi ke sana. (Sebagian besar detail mungkin ada dalam komentar Anda, jadi itu akan dilakukan sebagai titik awal untuk masalah ini, tetapi deskripsi lengkap tentang cara mereproduksi masalah dalam proyek Appveyor baru akan sangat berguna dalam membantu kami mendiagnosis masalah tersebut. .

@arvoelke :

Dia mengacu pada penggunaan easy_install untuk menginstal pip, bukan bukan pip

Menginstal pip menggunakan easy_install mungkin akan mengalami masalah, dan jika ya, kami tidak akan dapat mendukung Anda, karena (seperti yang dikatakan @pradyunsg ) easy_install sudah tua, tidak dipelihara secara aktif, dan kehilangan fitur terbaru. Tetapi jika itu berhasil untuk Anda, dan Anda tidak membutuhkan bantuan kami, maka baiklah - tidak ada yang menghentikan Anda.

Banyak orang lain di utas ini mengalami masalah yang sama

Definisikan "sama". Jika maksud Anda "melihat kesalahan dari kode yang mengimpor pip.main maka ya, tapi itu tidak masalah dengan pip, itu disengaja, tidak kompatibel ke belakang, ubah ke implementasi internal pip. Jika Anda ingin kami mengatakan " sulit, Anda tidak boleh menggunakan API internal pip", maka baiklah - satu masalah sudah cukup, dan kami hanya akan menutupnya sebagai "bukan bug". Tetapi jika Anda ingin kami membantu Anda menyelesaikan apa bagian dari lingkungan Anda gagal mengikuti saran yang diterbitkan 6 bulan yang lalu, dan temukan solusi untuk Anda yang memungkinkan Anda terus menggunakan pip sementara lingkungan Anda diperbaiki oleh vendor, maka Anda harus membantu kami untuk membantu Anda. mengatakan "Saya memiliki masalah yang sama" pada laporan tentang utilitas murni Unix, ketika Anda menjalankan Windows, jelas tidak membantu kami membantu Anda...

Masalah yang dibahas di sini terkait dengan pyenv yang merupakan utilitas Unix eksklusif.

Salah satu balasan pertama untuk utas ini adalah:

Sama di sini .. Output yang sama persis dengan @HayaoSuzuki dan kami tidak menggunakan pyenv

Aspek pyenv tampaknya kurang lebih sekunder berdasarkan komentar di atas dan masalah serta komitmen terkait, termasuk yang terjadi pada instalasi baru Ubuntu dan RaspberryPi. Sekali lagi semua ini sudah menjadi bagian dari masalah ini. Akar penyebabnya adalah "sama" (yaitu, memutakhirkan pip dan kemudian mencoba meluncurkannya) untuk semua orang, termasuk OP, sehingga kami dapat membuat lebih banyak masalah tetapi tidak ada yang benar-benar berbeda terjadi di antara mereka -- hanya di bagaimana masalah itu terwujud.

Dan mengatakan "Saya memiliki masalah yang sama" pada laporan tentang utilitas murni Unix, ketika Anda menjalankan Windows, jelas tidak membantu kami membantu Anda...

Saya tidak berjalan di Windows. Saya menjalankan Ubuntu seperti yang saya katakan sebelumnya. Poster lainnya menggunakan Windows, tetapi mereka hanya memutakhirkan pip dan menjalankan pip, sama seperti kita semua dalam masalah ini. Ada konsensus yang cukup umum bahwa penggunaan pyenv tidak mendasar untuk masalah ini.

Semua masalah itu tampaknya berasal dari masalah yang sama: memutakhirkan pip, tetapi tetap menggunakan peluncur lama yang masih menggunakan titik masuk lama. Cara yang baik untuk menghindari masalah seperti ini adalah dengan menggunakan python -m pip .

Semua masalah itu tampaknya berasal dari masalah yang sama: memutakhirkan pip, tetapi tetap menggunakan peluncur lama yang masih menggunakan titik masuk lama. Cara yang baik untuk menghindari masalah seperti ini adalah dengan menggunakan python -m pip.

Ya, saya pikir itu tampaknya menjadi akar masalahnya, dan terjadi di semua platform berbeda yang disebutkan di utas ini, termasuk Windows.

Jika ini membantu orang lain, saya dapat mengonfirmasi bahwa mengalihkan appveyor.yml peningkatan pip dari:

pip install --disable-pip-version-check --user --upgrade pip

ke:

python -m pip install --upgrade pip

tidak memperbaiki masalah. Sekarang untuk memperbarui beberapa repo lagi!

Saya mengalami gejala yang sama yang dibahas di sini dalam situasi yang berbeda.

Saya mencoba menggunakan pip yang diinstal secara lokal, pada sistem Ubuntu 16.0.4:

curl -O https://bootstrap.pypa.io/get-pip.py
export PYTHONUSERBASE=$(pwd)
python ./get-pip.py --user
export PYTHONPATH=$(pwd)/lib/python2.7/site-packages

python ./bin/pip --version

Traceback (most recent call last):
  File "/path/to/bin/pip", line 7, in <module>
    from pip._internal import main
ImportError: No module named _internal

Ternyata Ubuntu menambahkan jalur khusus pip ke sys.path melalui site.py , yang menimpa PYTHONPATH saya, yang ditunjukkan di bawah ini:

import sys
print(sys.path)
['', '/usr/local/lib/python2.7/dist-packages/pip-9.0.1-py2.7.egg', '/path/to/lib/python2.7/site-packages`, ...]

Saya mencoba menghindari awalan dengan flag -S untuk python, didokumentasikan di halaman manual sebagai:

-S Menonaktifkan impor situs modul dan manipulasi sys.path yang bergantung pada situs yang menyertainya.

dan itu berhasil:

python -S ./bin/pip --version

pip 10.0.1 from path/to/bin/pip (python 2.7)

Berbagi jika ini dapat membantu orang lain - Dalam gambar buruh pelabuhan saya (dasarnya adalah ubuntu:xenial ) saya menerima kesalahan berikut:

Step 8/12 : RUN pip install -U pip  && pip install -r /tmp/requirements.txt
 ---> Running in e4ff51b013f0
Collecting pip
  Downloading https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl (1.3MB)
Installing collected packages: pip
  Found existing installation: pip 8.1.1
    Not uninstalling pip at /usr/lib/python2.7/dist-packages, outside environment /usr
Successfully installed pip-10.0.1
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

Saya mengubah pip install -U pip && pip install -r /tmp/requirements.txt menjadi pip2 install -U pip && pip2 install -r /tmp/requirements.txt . Ini menyelesaikan masalah.

Saya tidak yakin apakah saya melihat jawaban/tanggapan atas komentar @davidjlloyd :

Saya tidak yakin bahwa secara agresif melanggar penggunaan yang ada dari fitur yang tidak didukung alih-alih mencela fitur tersebut untuk beberapa rilis utama adalah pendekatan terbaik.

Bisakah saya bertanya mengapa tidak ada proses penghentian untuk ini?
Sepertinya akan cukup mudah, pada import dari pip , periksa sys.argv[0] ; jika bukan pip atau pipX[.Y] , keluarkan DeprecationWarning s bahwa ini akan gagal dalam rilis X+, dengan tautan ke apa yang Anda sebutkan: https://pip.pypa. io/en/latest/user_guide/#using -pip-from-your-program

Apakah ada proses untuk mencoba dan memastikan hal semacam ini diharapkan dapat dihindari di masa depan?

Saya tidak yakin apakah saya melihat jawaban/tanggapan atas komentar @davidjlloyd :

Sudah dijawab berulang kali, Mungkin bukan tentang masalah khusus ini, tetapi pencarian pelacak masalah akan menemukan banyak diskusi tentang masalah tersebut.

Bisakah saya bertanya mengapa tidak ada proses penghentian untuk ini?

Karena tidak pernah didukung. Mengapa kami memperingatkan bahwa kami tidak mendukung sesuatu yang tidak pernah kami dukung? Orang-orang menganggap tidak apa-apa untuk membaca kode sumber pip dan menggunakan fungsi yang mereka temukan di sana dalam kode mereka sendiri. Tidak pernah. Kami mengatakan itu bisa pecah, dan di pip 10 itu terjadi.

Sepertinya akan cukup mudah, pada impor pip, periksa sys.argv[0]; jika bukan pip atau pipX[.Y], keluarkan beberapa DeprecationWarnings

Saya tidak yakin itu semudah yang Anda pikirkan. Dan saya katakan bahwa dari sudut pandang seseorang yang harus berurusan dengan masalah di mana peringatan yang ditambahkan di pip 10 dipicu ketika kami tidak mengharapkannya...

Dan sekali lagi, tidak perlu mencela sesuatu yang tidak didukung sejak awal.

Apakah ada proses untuk mencoba dan memastikan hal semacam ini diharapkan dapat dihindari di masa depan?

Hal macam apa? Kerusakan yang disebabkan oleh kami mengubah hal-hal yang kami tidak menjamin kompatibilitas ke belakang? Tidak. Kita tidak perlu menghindari itu. Meskipun pada kenyataannya, kami mencoba mengelola prosesnya, sebagai rasa hormat kepada pengguna kami ( bukan kewajiban!). Dalam hal ini, kami mempublikasikan perubahan 6 bulan sebelumnya, menawarkan saran untuk orang yang perlu mengubah kode mereka, dan telah menghabiskan banyak waktu sejak rilis membantu pengguna yang memiliki masalah karena perangkat lunak yang mereka andalkan tidak mengindahkan peringatan-peringatan itu. Itu banyak pekerjaan yang dilakukan oleh kelompok sukarelawan yang sangat kecil untuk mencoba mengurangi situasi yang disebabkan oleh orang-orang yang mengharapkan dukungan yang tidak pernah ditawarkan atau dijanjikan. Sama-sama.

Kami memiliki proses (peringatan penghentian, dll) untuk mengubah hal-hal yang kami menjamin kompatibilitasnya - tetapi mengimpor pip ke program Anda sendiri bukanlah salah satunya.

Saya memiliki skrip bash yang menginstal labu dan meminta pemutakhiran merusak skrip saya, tetapi saya mengerti alasan yang disebutkan di atas. Pekerjaan saya agar skrip saya tetap berfungsi adalah dengan meluncurkan proses bash baru, mungkin itu salah tetapi itu berhasil untuk saya. Semoga ini bisa membantu orang lain dengan skrip serupa.

pip install --upgrade pip
echo "pip install Flask" | bash
echo "pip install requests" | bash

@OneLogicalMyth apa yang Anda cari mungkin hash -d pip , lihat https://github.com/pypa/pip/issues/5221#issuecomment -381568428.

benar-benar merindukan itu bahkan setelah membacanya dengan cermat, terima kasih @austinbutler ini telah menyelesaikan masalah saya.

Satu-satunya alasan masalah ini tetap terbuka dan tidak ditutup sebagai duplikat segera adalah karena saya khawatir jika pyenv melakukan sesuatu dengan shims dan jika pip perlu membantu dalam beberapa cara. Bukan itu masalahnya, masalah ini ditutup sekarang.

Saya telah membuat daftar solusi sebelumnya (semuanya sepele) untuk hampir semua masalah yang disebutkan di sini - lihat https://github.com/pypa/pip/issues/5221#issuecomment -382069604 . Mudah-mudahan, itu menjawab semua kekhawatiran yang diangkat dalam masalah ini. Jika tidak, silakan buka edisi baru.

@benoit-pierre Saya menambahkan saran Anda untuk menggunakan python -m pip ke komentar tertaut. Terima kasih untuk itu. :)


Menginstal pip menggunakan easy_install mungkin memiliki masalah, dan jika ya, kami tidak akan dapat mendukung Anda, karena (seperti yang dikatakan @pradyunsg ) easy_install sudah tua, tidak dipelihara secara aktif, dan kehilangan fitur terbaru.

Terima kasih telah memperjelas posisi saya @pfmoore. Itulah yang saya bicarakan.

Saya semakin bingung dengan berbagai masalah yang sedang dibahas.

Gerakan mengungkap kekerasan seksual demi menghapuskannya.


Hanya beberapa tip umum (ambil atau tinggalkan), tentang hal-hal yang saya lihat di edisi ini:

  • Jika perintah pip tidak bekerja karena suatu alasan, coba jalankan python -m pip . Kemungkinan python -m pip akan bekerja untuk Anda bahkan jika skrip pembungkus Anda rusak. Jika tidak berhasil, buka edisi baru.
  • Jangan jalankan pip sebagai root atau lakukan sudo pip . Anda mungkin akan merusak sistem Anda dan jika itu tidak cukup buruk, Anda melakukan eksekusi kode jarak jauh sebagai root.
  • Jangan gunakan easy_install karena alasan yang dikutip di atas komentar ini. Berikut lebih banyak konteks (itu sedikit ketinggalan zaman).
  • Tolong jangan pin ke pip 9. Saya sangat percaya bahwa melakukan itu secara aktif bertindak untuk memperlambat kemajuan Kemasan Python secara umum.

    • pip 9 tidak akan pernah mendukung PEP 517/518 dan tetap menggunakan pip 9 berarti Anda harus bersusah payah untuk beralih nanti, ketika sebuah paket rusak pada menit terakhir karena mereka beralih ke standar pengemasan yang lebih baru.


Untuk meringkas, ini mungkin bukan kesalahan satu proyek/orang dan semua orang beralasan untuk mengambil tindakan mereka. Ya, lingkungan Anda rusak. Kami mengerti. Jangan menyalahkan orang yang merelakan waktu luang mereka, untuk membantu Anda saat ini dan mengembangkan pip.

Ingin membantu kami? https://donate.pypi.org adalah sesuatu dan jika bukan itu bukan tipe Anda , ada banyak masalah terbuka di pelacak masalah ini yang dapat Anda bantu.

Aku akan mundur dari masalah ini sekarang.

Oke, satu hal lagi, jika seseorang masih ingin mendiskusikan keputusan kami untuk memindahkan semua basis kode kami ke pip._internal , buka edisi baru dan sebutkan. Saya akan meluangkan waktu untuk menulis sesuatu dengan tautan dan sebagainya, tentang mengapa pip melakukan ini. Dengan begitu, @pypa/pip-committers akan memiliki satu tempat untuk orang-orang menautkan topik ini.

Untuk saat ini, ini bekerja pada python3 / pip3 , untuk memutarnya kembali

python3 -m pip install --user --upgrade pip==9.0.3

@freckletonj Tolong jangan beri tahu orang untuk kembali ke pip 9. Itu bukan cara Anda harus menyelesaikan masalah ini. Ada banyak cara yang lebih baik.

Saya telah menautkan ke komentar tepat di atas komentar Anda, mencantumkan cara untuk menyelesaikan masalah ini.

maaf @pradyunsg , tapi itu masih tidak berhasil:

$ pip3 install --upgrade --user 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
  Found existing installation: pip 9.0.3
    Uninstalling pip-9.0.3:
      Successfully uninstalled pip-9.0.3
Successfully installed pip-10.0.1
$ pip3
Traceback (most recent call last):
  File "/usr/local/bin/pip3", line 7, in <module>
    from pip import main
ImportError: cannot import name 'main'

Dari https://github.com/pypa/pip/issues/5221#issuecomment -382069604, yang telah saya tautkan di atas:

hash -r pip # or hash -d pip

Jika ada yang memiliki pertanyaan lain, silakan buka edisi baru.

5599 memberikan informasi dan menyediakan satu lokasi untuk mencari bantuan guna menyelesaikan masalah ini bagi pengguna akhir.

Bagian komentar dari masalah itu terbuka bagi pengguna untuk mendiskusikan masalah dan solusi khusus. :)

Apakah halaman ini membantu?
0 / 5 - 0 peringkat