web-dev-qa-db-ja.com

ピップをバージョン>> 9.0.1にアップグレードする方法(pip install --upgrade pipは 'cannot import name main'エラーを出します)

私はpip 8.1をインストールしていて、> 9.0.1にアップグレードしたい(python 2.7のmatplotlibをインストールする)。 pipを最新にアップグレードする方法 とした

Sudo -H pip3 install --upgrade pip
Sudo -H pip2 install --upgrade pip

その後、pip --versionと入力すると、

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

これは以前に経験したことがあり、解決策を知っていた(うーん、ドイツ語の単語の順序のように聞こえる.. :))。

Sudo python3 -m pip uninstall pip && Sudo apt install python3-pip --reinstall
Sudo python -m pip uninstall pip && Sudo apt install python-pip --reinstall

次にpip --versionと入力して取得します

pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

これは8.1.1に戻ります。どうすれば最新バージョンにアップグレードできますか?

追加:16.04.5 LTSを使用しています。これはシステム環境で。(python 2.7仮想環境でOK)

2
Chan Kim

ここでの問題は、pipインストール先apt競合 標準のpipパッケージであることです

最も簡単な解決策は、標準のpipのみをインストールすることです。

  1. 何も起こらないまで次のコマンドを実行して、pipをアンインストールします。

    Sudo python -m pip uninstall pip
    
  2. アンインストールaptpip

    Sudo apt-get remove python-pip
    
  3. https://bootstrap.pypa.io/get-pip.py からpipブートストラップをダウンロードします

  4. 標準のpip [.____をインストールします。]
    python get-pip.py
    

注:Python 3を使用している場合、pythonpython3に置き換えますが、OPはmatplotlib for Python 2


aptpipと標準のpipの主な difference は、--useraptのデフォルトであることです。 、つまり、パッケージがユーザーのパッケージディレクトリにインストールされることを意味します(例: "〜/ .local/lib/python2.7/site-packages")。標準のpipは、デフォルトでシステムパッケージディレクトリにインストールされます

また、aptpipmanyバージョンになる傾向があり、多くの機能とバグ修正が欠けています現在の標準pip(プライベートリポジトリからのインストールなど PEP-517 サポート、コマンドラインのオートコンプリート)

3
Epic Wink

で試してください:

python2 -m pip install --upgrade pip
0
sylvain1811