Pip yükseltildikten sonra hata: 'main&#39 adı içe aktarılamıyor;

Pip kullanarak herhangi bir paket yüklemeye çalıştığımda, bu içe aktarma hatasını alıyorum:

guru@guru-notebook:~$ pip3 install numpy
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'


guru@guru-notebook:~$ cat `which pip3`
#!/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())

Daha önce sorunsuz çalışıyordu, neden bu hatayı verdiğinden emin değilim. Bu hatayı araştırdım ama düzeltmek için bir şey bulamadım.

Daha fazla ayrıntıya ihtiyacınız olursa lütfen bana bildirin, sorumu güncelleyeceğim.

Çözüm

Sisteminizin pip sürümünü yanlışlıkla yükseltmiş olmalısınız (muhtemelen sudo pip install pip --upgrade gibi bir şeyle)

pip 10.x dahili parçalarının yerini ayarlar. Gördüğünüz pip3 komutu, paket koruyucunuz tarafından sağlanan bir komuttur (muhtemelen burada debian tabanlıdır?) ve pip tarafından yönetilen bir dosya değildir.

Bu konu hakkında daha fazla bilgiyi pip's issue tracker adresinden okuyabilirsiniz.

Muhtemelen sistem pip'inizi yükseltmemek ve bunun yerine bir virtualenv kullanmak isteyeceksiniz.

pip3ikili dosyasını kurtarmak içinsudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall` yapmanız gerekir.

Eğer "desteklenmeyen bölgede" devam etmek istiyorsanız (sistem paket yöneticisi dışında bir sistem paketini yükseltmek), muhtemelen pip3 yerine python3 -m pip ... ile kurtulabilirsiniz.

Yorumlar (17)

Pip'in başka bir yolda önbelleğe alınıp alınmadığını kontrol edin, bunu yapmak için $ which pip'i çağırın ve yolun hatada istenen yoldan farklı olup olmadığını kontrol edin, eğer durum buysa çalıştırın:

$ hash -r

Önbellek temizlendiğinde pip tekrar çalışmaya başlayacaktır. referans: http://cheng.logdown.com/posts/2015/06/14/-usr-bin-pip-no-such-file-or-directory

Yorumlar (0)

Ben sudo apt remove python3-pip kullanıyorum, sonra pip çalışıyor.

 ~ sudo pip install pip --upgrade
[sudo] password for sen: 
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in 
    from pip import main
ImportError: cannot import name 'main'
➜  ~ sudo apt remove python3-pip   
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libexpat1-dev libpython3-dev libpython3.5-dev python-pip-whl python3-dev python3-wheel
  python3.5-dev
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  python3-pip
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 569 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 215769 files and directories currently installed.)
Removing python3-pip (8.1.1-2ubuntu0.4) ...
Processing triggers for man-db (2.7.5-1) ...
➜  ~ pip

Usage:   
  pip  [options]
Yorumlar (1)