32ビットWindows用のpipおよびsetuptoolsにバンドルされている最新のpython(2.7.9)をインストールしました。私はpipを再インストールしようとしましたが、問題は解決しません。
これはAdministrator cmdで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
バグはpip 10.0.0にあります。
Linuxでは、ファイル/ usr/bin/pipを以下から変更する必要があります。
from pip import main
if __== '__main__':
sys.exit(main())
これに:
from pip import __main__
if __== '__main__':
sys.exit(__main__._main())
元々の質問は2015年のもののようですが、この「バグ」はpip-10.0.0
をインストールするユーザーにも影響を与えるようです。
回避策はpip
を変更することではありませんが、pipの呼び出し方法を変更することです。 /usr/bin/pip
を呼び出す代わりに、Python自体を通してpip
を呼び出してください。例えば、以下の代わりに:
pip install <package>
Pythonバージョン2(またはデフォルトのPythonバイナリがpython
)からのものである場合は、次のようにします。
python -m pip install <package>
pythonバージョン3の場合
python3 -m pip install <package>
Ubuntuサーバー16では、私はpython27と同じ問題を抱えています。これを試して:
変化する
from pip import main
if __== '__main__':
sys.exit(main())
に
from pip._internal import main
if __== '__main__':
sys.exit(main())
Windows 10では、次のコマンドを使用してpipをダウングレードしました。
python -m pip uninstall pip
python -m pip install pip==9.0.3
できます。
私はget-pip.py
を使ってpipを再インストールすることによって問題を修正しました。
python get-pip.py
を使って実行します。そしてピップは固定され、完璧に機能します。
私は同じ問題を抱えていたが、aptとpipを使ったアンインストールと再インストールは私にはうまくいかなかった。
私はpip3パスを回復する簡単な方法を提示する別の解決策を見ました:
Sudo python3 -m pip uninstall pip && Sudo apt install python3-pip --reinstall
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
の下に移動し、binスクリプトが古い場所(バージョン9にあった場所)から見たままになっているために発生します。問題といくつかの議論 https://github.com/pypa/pip/issues/524
あなたがPATH
をピップするためのハードリンクを持っているなら(すなわち、あなたが複数のpythonバージョンをインストールしているなら)そしてあなたがpipをアップグレードするなら、あなたはこのエラーに遭遇するかもしれません。
解決策は、ハードリンクをもう一度作成することです。さらに良いことには、ハードリンクの使用をやめてソフトリンクを使用してください。
Ubuntuで機能する簡単な解決策ですが、Windowsでも同様に問題を解決できます。
電話するだけ
pip install --upgrade 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.i
try:
from pip import main
except ImportError:
from pip._internal import main
if __== '__main__':
sys.exit(main())
PyCharmでpip 10を使用する際に同様の問題がある場合は、 最新バージョン をダウンロードしてください。
それは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 __== '__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 __== '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(__main__._main())
ファイルを保存して閉じます。そしてこれで終わりです!