web-dev-qa-db-ja.com

Ubuntu 15.04でpip -tが機能しないのはなぜですか?

Ubuntu 15.04でpipに奇妙な問題がありました。特定のディレクトリに「-t」オプションを使用してインストールしようとすると、次のエラーで失敗します。

error: can't combine user with prefix, exec_prefix/home, or install_(plat)base

たとえば、pip install -t <directory> <package>はこのエラーで失敗します。

私のpipはバージョン1.5.6で、Pythonバージョンは2.7です。

14.10システムでまったく同じコマンドを問題なく実行したので、これは15.04に特有の問題であるとのみ結論付けることができます。

7
djpetti

同じ問題にぶつかりましたが、デフォルトのディストリビューションのピップが古い1.5.6で、現在リリースされているバージョンが7.1.0であることに気付きました。問題を追跡するのは難しいので、あちこちで「干し草の山の針」を探して、次のようにそれを取り外して手動でインストールしました。

このコメント: https://github.com/pypa/pip/issues/1093#issuecomment-10312788 このスタックで参照: https://stackoverflow.com/questions/19460232/ pip-list-crashes-with-an-assertionerror

Pipを削除します。

Sudo apt-get remove --auto-remove python-pip

インストールスクリプトをダウンロードします。

wget https://bootstrap.pypa.io/get-pip.py

再度インストールします。

Sudo python get-pip.py

コマンドをbinにリンクします:

Sudo ln -s [PIP_HOME]/bin/pip /usr/local/bin/pip
Sudo ln -s [PIP_HOME]/bin/wheel /usr/local/bin/wheel
Sudo ln -s [PIP_HOME]/bin/easy_install /usr/local/bin/easy_install

[PIP_HOME]はpipパッケージのディレクトリです。

pip -Vを実行すると、

pip 7.1.0 from /home/tiberiu/.local/lib/python2.7/site-packages (python 2.7)

根本的な問題に戻ると、コマンドは最新バージョンでpip install -r requirements.txt -t lib成功します。

8
Tiberiu C.

@Tiberiu Cの answer は頭に釘を打ちます。ディストリビューションのpipが古いとは信じられません。ただし、それを解決するための手順はかなり手間がかかるように思えるので、システムにeasy_installが既にある場合は、次の行で彼のソリューションを実装することで逃げることができます。

Sudo easy_install -U pip

最初にpipの自己アップグレードを試みました:

Sudo pip install --upgrade pip

ただし、ディストリビューションバージョンの置き換えは拒否されます。しかし、その後、私は this に出くわし、それが上記の解決策を示しました。

3
jeteon