ピップのキャッシュを削除しますか?


443

具体的にはpsycopg2 v2.4.1をインストールする必要があります。私は誤ってしました:

 pip install psycopg2

の代わりに:

 pip install psycopg2==2.4.1

以前のバージョンの代わりに2.4.4がインストールされます。

これで、psycopg2をpipでアンインストールして正しいバージョンで再インストールしようとした後でも、pipが最初にダウンロードしたキャッシュを再利用しているようです。

pipがダウンロードキャッシュをクリアして、コマンドに含めている特定のバージョンを使用するようにするにはどうすればよいですか?


4
(pipのメンテナが投稿した)現在の最新の回答は、stackoverflow.com / a / 61762308/1931274です。
pradyunsg

回答:


507

pip 6.0以降を使用している場合は、--no-cache-dirオプションを追加してみてください。

pip 6.0より古いpipを使用している場合は、でアップグレードしてくださいpip install -U pip


8
〜/ .pipを調べましたが、空のディレクトリです。--ignore-installedのヒントでうまくいきました!
Geuis、2012年

7
OSXでは、pip関連のディレクトリを削除する必要がありました$TMPDIR
Bryan P

2
virtualenvを使用している場合は、envs / {yourenvsname} / build / {packageinquestion} dir ...を削除する必要があるかもしれません
Vajk Hermecz

6
Windowsの場合:pipキャッシュディレクトリが〜\ AppData \ Local \ pip \ cacheにあるのを確認しました
Mercury

2
python -m pip install -U pipWindowsで行う必要があります。(pip.exeファイルがロックされているため、アップグレードできません。)
jpmc26

456

システムの適切な場所でキャッシュディレクトリをクリアします。

LinuxおよびUnix

~/.cache/pip  # and it respects the XDG_CACHE_HOME directory.

OS X

~/Library/Caches/pip

ウィンドウズ

%LocalAppData%\pip\Cache

6
上位3つの回答が実際に質問に回答するわけではなく、これが最初の回答です。
AmphotericLewisAcid

(pipのメンテナが投稿した)現在の最新の回答は、stackoverflow.com / a / 61762308/1931274です。現在の最善のアプローチはですpip cache purge
pradyunsg

104

https://pip.pypa.io/en/latest/reference/pip_install.html#cachingのドキュメントから:

v6.0から、pipはデフォルトで有効なキャッシュを提供し、Webブラウザーのキャッシュと同様に機能します。キャッシュはデフォルトでオンになっており、デフォルトで正しく機能するように設計されていますが、キャッシュを無効にして、常にPyPIにアクセスできます。--no-cache-dir オプションをます。


2
これが正しい答えです...リンクもピップは、Linux、WindowsとOS X上でキャッシュをスタッシュショー
jasonjwwilliams

3
さらに、「悪い」オブジェクトをキャッシュから削除したい場合は、ページを見てキャッシュファイルの場所を見つけ、問題のあるパッケージを「見つけて」ください。Linuxは〜/ .cache / pip、Macは〜/ Library / Caches / pipなどです。興味深いことに、psycopg2も私の問題のパッケージでしたが、これは既存のパッケージが別のPostgresqlライブラリ用にコンパイルされたため、私のサーバー。
クリスコグドン

78

このように、pipはキャッシュを無視してパッケージをインストールできます

pip --no-cache-dir install scipy

7
dafedaの答え4ヶ月前に同じ情報を提供します@
FOON


17

(ここにパイプメンテナー!)

ピップ6.0(2014年バック!)ので、pip installpip downloadおよびpip wheelコマンドがでキャッシュを使用しないように伝えることができる--no-cache-dirオプション。(例:pip install --no-cache-dir <package>

pip 10.0以降(2018年に戻った!)、pip configコマンドが追加されました。これは、常にキャッシュを無視するpip config set global.cache-dir falseようにpipを構成するために使用できます。

pip 20.1以降、pipにはpip cachepipのキャッシュの内容を管理するコマンドがあります。

  • pip cache purge キャッシュ内のすべてのホイールファイルを削除します。
  • pip cache remove matplotlib matplotlibに関連するファイルをキャッシュから選択的に削除します。

要約すると、pipはキャッシュの使用方法を微調整する多くの方法を提供します。

  • pip install --no-cache-dir <package>:この実行だけのために、キャッシュを使用せずにパッケージをインストールします。
  • pip config set global.cache-dir false:キャッシュを「グローバルに」使用しないようにpipを構成します(すべてのコマンドで)
  • pip cache remove matplotlib:matplotlibに関連するすべてのホイールファイルをpipのキャッシュから削除します。
  • pip cache purge:すべてのファイルをpipのキャッシュから消去します。

質問に記載されている「キャッシュのために間違ったバージョンをインストールする」という特定の問題は、pip 1.4で修正されました(2013年に戻った!):

ビルドディレクトリのクリーンアップと再利用に関連しない多くの問題を修正します。(#413、#709、#634、#602、#939、#865、#948)


10

あなたが設定したい場合は--no-cache-dirオプションは、デフォルトでは、あなたがにこれを置くことができますpip.conf

[global]
no-cache-dir = false

の場所はpip.confOSによって異なります。詳細については、ドキュメントを参照してください。


9

私は同様の問題を抱えていて、pipでパッケージをアップグレードする唯一の方法は、以前に完了していないインストールまたは以前のバージョンのpipから残っている可能性がある$PWD/build%CD%\buildWindowsの)ディレクトリを削除することでした(現在はインストールが成功した後にディレクトリを構築します)。


6

archlinuxのpipキャッシュは〜/ .cache / pipにあり、その中のhttpフォルダーを削除することで問題を解決できます。


6

私のMacでは、キャッシュディレクトリを削除する必要がありました ~/Library/Caches/pip/





3

Windows 7で%TEMP%\ pip-buildを削除する必要がありました


1
ありがとう+1。私はWindows 7も使用していて、%TEMP%\ pipフォルダーの下にフォルダーが見つかりました。%TEMP%は、不明な場合は環境変数で定義されます。
Simon


0

これを行うためのより良い方法は、キャッシュを削除して再構築することです。このように、他のvirtualenvに再度インストールすると、インストールするたびにビルドする代わりにキャッシュを使用します。

たとえば、インストールすると、キャッシュされたホイールを使用すると表示されます。

Processing <some_prefix>/Library/Caches/pip/wheels/d0/c4/e4/e49fd07bca8dda00dd6b4bbc606aa05a25aacb00d45747a47a/horovod-0.19.3-cp37-cp37m-macosx_10_9_x86_64.wh

削除してインストールを再開してください。


-2

(...)pipがキャッシュを再利用しているようです(...)

私はそれが何が起こっているのかではないと確信しています。キャッシュではなくビルドディレクトリを(誤って)再利用するために使用されるピップ。これは、2013-07-23にリリースされたpipのバージョン1.4で修正されました。

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