ImportError: windows7 32 bit'te pip --version komutu çalıştırıldığında main adı içe aktarılamıyor


145

Windows 32-bit için pip ve kurulum araçlarıyla birlikte en son python'u (2.7.9) yükledim. Pip'i yeniden yüklemeyi denedim ama sorun devam ediyor.

pip --versionYönetici cmd'sinde çalıştırdıktan sonra oluşan hata :

Traceback (most recent call last):
 File "D:\Python\lib\runpy.py", line 162, in _run_module_as_main
  "__main__", fname, loader, pkg_name)
 File "D:\Python\lib\runpy.py", line 72, in _run_code 
  exec code in run_globals
 File "D:\Python\Scripts\pip.exe\__main__.py", line 5, in <module>
ImportError: cannot import name main

1
Dosya izniyle ilgili olabilir, burada python 3.4 ile ilgili bir sorun çözüldü, kontrol etmeye değer.
Kobi K

Geçici çözümleri icacls komutunu kullanarak yaptım ancak hata devam ediyor.
Woootiness

2
"easy_install -U pip" yanıtı stackoverflow.com/questions/28031277/… adresinde sağlanır unpack-url
J1MF0X

Yanıtlar:


173

Asıl soru 2015'ten kalma gibi görünse de, bu 'hata' yükleme pip-10.0.0yapan kullanıcıları da etkiliyor gibi görünüyor .

Çözüm, değişiklik yapmamak pip, ancak pip çağrılma şeklini değiştirmektir. Bunun yerine çağıran /usr/bin/pipçağrı pipPython kendisi aracılığıyla. Örneğin, aşağıdakiler yerine:

pip install <package>

Python sürüm 2'den (veya varsayılan Python ikili dosyası çağrılırsa python) şunu yapın:

python -m pip install <package>

veya Python sürüm 3'ten ise:

python3 -m pip install <package> 

evet, bunu düzeltmek için ne yaptığımı hatırlamıyorum ama bunu başkaları için açık tutuyorum.
Woootiness

Verilen komutu kullandığımda, bir izin hatası aldım (katalinpopescu'nun cevabına göre pip'i değiştirdikten sonra da aldım). Ancak, kullanıcının kapsamı için paketleri indirmek için (böylece yönetim haklarına ihtiyacınız olmaz) şunu kullanın: python3 -m pip install <package> --user (python3 için çalışır, test edilmemiş olmasına rağmen python2 için de çalışmalıdır)
randmin

Mac'te bana yardım etti.
charles ross

Daha iyi cevap. Kaynak kodunu değiştirmek bir bataklıktır.
ozgur

Bu gerçekten iyi bir yol. Doğru sürümü kullandığınızdan emin olmanızı da gerçekten kolaylaştırır:python2 -m pip install $package
JamesTheAwesomeDude

257

Hata pip 10.0.0'da bulunur.

Linux'ta, / usr / bin / pip dosyasını şu dosyadan değiştirmeniz gerekir:

from pip import main
if __name__ == '__main__':
    sys.exit(main())

buna:

from pip import __main__
if __name__ == '__main__':
    sys.exit(__main__._main())

1
Görünüşe göre çözüm bu. Bunu denedim ve şimdiye kadar sorun yok.
Khue

2
Pip 10.0.1 kullanıyorum ve hata hala orada. Çözümün yardımcı oldu. Teşekkürler! Bu hatayı ve çözümü geliştiricilere bildirdiniz mi?
Alexey Subach

7
Bu çözüm işe yarasa da, lütfen pipkendisini değiştirmekten kaçının . pipBunun yerine Python'dan aramak için aşağıdaki daha temiz bir çözüme bakın .
Wan Bachtiar

1
"Pip 10.0.1" de yardımcı olmuyor. pip --version pip 10.0.1 from /home/x/.local/lib/python2.7/site-packages/pip (python 2.7) kullanım: sudo pip install tensorflow çıktı:Traceback (most recent call last): File "/usr/bin/pip", line 9, in <module> from pip import main ImportError: cannot import name main
user_x

3
@creepy_driver, kurulu bir paketi ortama uyacak şekilde manuel olarak değiştirmek tavsiye edilmez, çünkü bir dahaki sefere başka bir sürüme, yani 10.0.3'e güncelleme yaptığınızda aynı sorunla karşılaşmanız olasıdır. pipYüklü Python aracılığıyla çalıştırmanın geçici çözümü, pip'i uygun ortamı doğru bir şekilde kullanmaya yönlendirecektir.
Wan Bachtiar

59

Ubuntu Server 16'da python27 ile aynı sorunu yaşıyorum. Bunu dene:

Değişiklik

from pip import main
if __name__ == '__main__':
    sys.exit(main())

İçin

from pip._internal import main
if __name__ == '__main__':
    sys.exit(main())

1
Ubuntu

Bu iyi bir fikir değil. @RichardElkins'in başka bir yanıtında belirtildiği gibi: "İnsanlar, kurulumdan sonra değiştirilmeleri amaçlanmayan yüklü dosyaları düzenlemekle zaman kaybetmemelidir"
juergi

20

Windows 10'da pip'i düşürmek için aşağıdaki komutları kullandım:

python -m pip uninstall pip
python -m pip install pip==9.0.3

Bu aynı zamanda Linux ve Mac'te de çalışmalıdır.


1
Python -m pip install pip == 9.0.3 olmalıdır
elelias

@elelias Oh, bunun farkında değildim. bana söylediğin için teşekkürler!
kiyah

1
Yapmak zorundaydım python easy_install.py pip==9.0.3çünkü ilk satırdan sonra pip bulunamadı.
Suzanne

3
Linux ve Mac'te de çalışır. Pip / pip3 10 sabitlenene kadar geçici bir çözümdür. Millet yüklü dosyalarını düzenleme onların vakit kaybetmemesi gerektiğini sonra kurulum .. modifiye üzere tasarlanmamıştır
Richard Elkins'leri

Yükseltmeden sonra yol sorunlarım oldu, çalışmasını sağlamak için aşağıdakileri yaptım. sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall
webjockey

10

Aynı sorunu yaşadım, ancak apt ve pip ile kaldırıp yeniden yükledim benim için işe yaramadı.

Pip3 yolunu kurtarmanın kolay bir yolunu sunan başka bir çözüm gördüm:

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

1
Python 2.7'ye sahiptim, bu yüzden komutu python 2.7 ile eşleşecek şekilde değiştirmek zorunda kaldım sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall
webjockey

ubuntu üzerinde mükemmel çalışıyor ancak pencerelerde çalışmayacağını düşünüyorum
zaki benz


2

MacOS'ta, python'u Homebrew aracılığıyla kurduysanız, satırı değiştirin /usr/local/opt/python/libexec/bin/pip

itibaren

from pip.internal import main

-e

from pip._internal import main

Veya bu tek astarı kullanın: sed -i '' "s/from pip import main/from pip._internal import main/" /usr/local/opt/python/libexec/bin/pip

Açıklama:

Sorun, dahili ad alanını altına main._internaltaşıyan pip sürüm 10'daki değişikliklerden ve homebrew tarafından yerleştirilen bin komut dosyasının hala eski yerden (sürüm 9'da olduğu yerde) bakmasından kaynaklanıyor. Sorun ve bazı tartışmalar https://github.com/pypa/pip/issues/5240


1

Eğer içinde pip yapmak için bir hardlinkiniz PATHvarsa (yani, kurulu birden fazla python sürümünüz varsa) ve sonra pip'i yükseltirseniz, bu hatayla da karşılaşabilirsiniz.

Çözüm, sabit bağlantıyı yeniden oluşturmaktan ibarettir. Daha da iyisi, sabit bağlantıları kullanmayı bırakın ve yumuşak bağlantılar kullanın.


1
bunu nasıl düzeltebilirim?
user_x

1

Windows 10'da da aynı sorunu yaşadım. PIP 19sistemime zaten yüklenmişti ama görünmüyordu. Hata oldu No Module Found.

python -m pip uninstall pip
python -m pip install pip==9.0.3

9.0.3'e pipdüşürmek benim için iyi çalıştı.



0

Ubuntu 16.04'te çalışır. Aşama 1:

 sudo gedit /home/user_name/.local/bin/pip

içeriğe sahip bir dosya açılır:

#!/usr/bin/python

# -*- 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())

Değişim mainiçin __main__aşağıda göründüğü gibi:

#!/usr/bin/python

# -*- 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__._main())

Dosyayı kaydedin ve kapatın. Ve bitirdiniz!


0

bunu dene

#!/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.i
try:
    from pip import main
except ImportError:
    from pip._internal import main
if __name__ == '__main__':
    sys.exit(main())

0

Ubuntu ile çalışan basit bir çözüm, ancak sorunu Windows'ta da çözebilir:

Sadece ara

pip install --upgrade pip

0

Bu, python3.6'yı kullanmaya çalışırken ubuntu 18.04'teki sorunumu çözdü:

rm -rf ~/.local/lib/python3.6

Klasörü test etmek için silmek yerine mv kullanarak başka bir yere taşıyabilirsiniz:

mv ~/.local/lib/python3.6 ./python3.6_old

0

Terminal linux'nuzu açın.

hash -d pip

Merhaba Carlos, Stack Overflow'a hoş geldiniz. Bu sorunla karşılaşan diğer kullanıcılara yardımcı olmak için, lütfen bu komutun ne yaptığını ve sorunu nasıl düzelttiğini açıklığa kavuşturmak için yanıtınızı ekleyebilir misiniz?
CyberJacob

0

Bizim durumumuzda 2020'de Python3 kullanarak, bu sorunun çözümü Python kurulumunu cloud-initVM'yi somutlaştıran başlangıç ​​betiğine taşımaktı .

Aynı hatayla, daha sonra VM'nin yaşam döngüsünde kullanıcılar tarafından çağrılan komut dosyalarını kullanarak Python'u kurmaya çalışırken karşılaşıyorduk, ancak aynı Python kurulum kodunu cloud-initbetiğe taşımak bu sorunu ortadan kaldırdı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.