ImportError:Windows 7 32ビットでpip --versionコマンドを実行すると、名前mainをインポートできません


145

Windows 32ビット用のpipおよびsetuptoolsにバンドルされている最新のpython(2.7.9)をインストールしました。ピップを再インストールしてみましたが、問題は解決しません。

pip --version管理者コマンドで実行した後のエラーは次のとおりです。

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
ファイルの権限に関連している可能性があり、ここでpython 3.4に問題があったため、解決しました。確認する価値があります。
Kobi K

icaclsコマンドを使用して回避策を実行しましたが、エラーが解決しません。
Woootiness 2015年

2
"easy_install -U pip"回答は、stackoverflow.com
questions / 28031277 /…で

回答:


172

元の質問は2015年からのようですが、この「バグ」はインストールするユーザーにも影響するpip-10.0.0ようです。

回避策はを変更することpipではありませんが、pipの呼び出し方法を変更することです。Python自体を介して呼び出しを/usr/bin/pip呼び出す代わりにpip。たとえば、以下の代わりに:

pip install <package>

Pythonバージョン2(またはデフォルトのPythonバイナリが呼び出されるpython)の場合は、次のようにします。

python -m pip install <package>

またはPythonバージョン3からの場合:

python3 -m pip install <package> 

ええ、私はこれを修正するために何をしたか覚えていませんが、私はこれを他の人のために開いたままにしています。
Woootiness

指定されたコマンドを使用すると、アクセス許可エラーが発生しました(カタリンポペスクの回答に従ってpipを変更した後も発生しました)。しかし、ユーザのスコープ(あなたが管理者権限を必要としないので、ということ)使用するためのパッケージをダウンロードするには:のpython3 -mピップ<パッケージ> --userインストール(のpython3のための作品を、またpython2のための作業がテストされていないが、必要があります)
randminを

Macで私を助けた。
チャールズロス

より良い答え。ソースコードの変更は沼地です。
ozgur

これは本当に良い方法です。また、それは本当に簡単にあなたが正しいバージョンを使用している保証を取得することができます:python2 -m pip install $package
JamesTheAwesomeDude

257

このバグはpip 10.0.0にあります。

Linuxでは、次のファイルを変更する必要があります:/ usr / bin / pip from:

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

これに:

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

1
これが解決策のようです。私はこれを試しましたが、今のところ問題はありません。
Khue

2
私はpip 10.0.1を使用していますが、バグはまだ残っています。あなたのソリューションが助けました。ありがとう!このバグと解決策を開発者に報告しましたか?
Alexey Subach

7
このソリューションは機能しますが、pipそれ自体を変更することはご遠慮ください。pip代わりにPython から呼び出すには、以下のよりわかりやすいソリューションを参照してください。
Wan Bachtiar

1
「pip 10.0.1」では役に立たない。 pip --version pip 10.0.1 from /home/x/.local/lib/python2.7/site-packages/pip (python 2.7) 使用法: sudo pip install tensorflow 出力:Traceback (most recent call last): File "/usr/bin/pip", line 9, in <module> from pip import main ImportError: cannot import name main
user_x 2018

3
@creepy_driver、インストール済みのパッケージを環境に合わせて手動で変更することはお勧めしません。次回別のバージョン、つまり10.0.3に更新するときに、同じ問題が発生する可能性があるためです。pipインストールされたPythonを介して実行する回避策は、pipが適切な環境を正しく使用するように指示します。
Wan Bachtiar 2018

60

Ubuntu Server 16では、python27でも同じ問題があります。これを試して:

変化する

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

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

1
ubuntu 16.04で作業
Sameera Kumarasingha

これは良い考えではありません。
@RichardElkins

20

Windows 10では、pipをダウングレードするために次のコマンドを使用しました。

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

これはLinuxとMacでも動作するはずです。


1
python -m pip install pip == 9.0.3
elelias

@エレリアスああ、私はそれを理解していませんでした。教えてくれてありがとう!
キヤ

1
python easy_install.py pip==9.0.3最初の行の後、pipが見つからなかったので、私はしなければなりませんでした。
スザンヌ

3
LinuxとMacでも動作します。これは、pip / pip3 10が修正されるまでの回避策です。人々は...インストール後に変更することを意図していないインストールされたファイルを編集して自分の時間を無駄にしてはならない
リチャード・エルキンズ

アップグレード後にパスの問題がありましたが、それを機能させるために次のことを行いました。sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall
webjockey

10

私は同じ問題を抱えていましたが、aptとpipを使用してアンインストールと再インストールを実行できませんでした。

私は、pip3パスを回復する簡単な方法を示す別のソリューションを見ました:

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

1
私はpython 2.7を持っていたので、python 2.7に一致するようにコマンドを変更する必要がありましたsudo python -m pip uninstall pip && sudo apt install python-pip --reinstall
webjockey

ubuntuでは完全に機能しますが、Windowsでは機能しないと思います
zaki benz '11年

8

を使用してpipを再インストールすることで問題を修正しましたget-pip.py

  1. 公式リンクからget-pipをダウンロード:https : //pip.pypa.io/en/stable/installing/#upgrading-pip
  2. commande:を使用して実行しますpython get-pip.py

そして、pipは修正され、完全に機能します。


1
python get-pip-pyをpythonに変更しますget-pip.py
YourFriend

1
完璧に働きました!ありがとうございました。
シャンボ2018年

私のためにも働いた。ありがとう
Abhishek Kishore

2

MacOSでは、Homebrew経由でpythonをインストールした場合は、次の行を変更します /usr/local/opt/python/libexec/bin/pip

から

from pip.internal import main

from pip._internal import main

または、次の1つのライナーを使用します。 sed -i '' "s/from pip import main/from pip._internal import main/" /usr/local/opt/python/libexec/bin/pip

説明:

この問題は、pipバージョン10の変更により内部ネームスペースが移動しmain._internal、homebrewが配置したbinスクリプトが古いバージョン(以前はバージョン9であった場所)からまだ探しているために発生します。問題といくつかの議論https://github.com/pypa/pip/issues/5240


1

pipへのハードリンクがありPATH(つまり、複数のpythonバージョンがインストールされている場合)、pipをアップグレードすると、このエラーが発生する場合もあります。

解決策は、ハードリンクを再度作成することです。または、ハードリンクの使用をやめ、ソフトリンクを使用します。


1
これを修正する方法?
user_x 2018

1

Windows 10でも同じ問題がありました。PIP 19私のシステムにはすでにインストールされていましたが、表示されませんでした。エラーはでしたNo Module Found

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

pip9.0.3へのダウングレードはうまくいきました。



0

Ubuntu 16.04で動作します。ステップ1:

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

次の内容のファイルが開きます。

#!/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する__main__ことは以下の通り表示されます:

#!/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())

ファイルを保存して閉じます。これで完了です。


0

これを試して

#!/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で動作するシンプルなソリューションですが、Windowsでの問題も解決する可能性があります。

電話するだけ

pip install --upgrade pip

0

これは、python3.6を使用しようとしたときのubuntu 18.04の私の問題を解決しました:

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

テストのために、フォルダを削除する代わりに、mvを使用して別の場所に移動できます。

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

0

ターミナルLinuxを開きます。

hash -d pip

こんにちはカルロス、スタックオーバーフローへようこそ。この問題に直面している他のユーザーを支援するために、このコマンドの機能と問題の修正方法を明確にするために回答を追加してください。
Cyber​​Jacob

0

私たちの場合、2020年にPython3を使用して、この問題の解決策cloud-initは、VMをインスタンス化する起動スクリプトにPythonインストールを移動することでした。

VMのライフサイクルの後半でユーザーによって呼び出されたスクリプトを使用してPythonをインストールしようとしたときにこの同じエラーが発生していましたが、同じPythonインストールコードをcloud-initスクリプトに移動すると、この問題は解消されました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.