$ python3 -m venv ~/venvs/vtest
$ source ~/venvs/vtest/bin/activate
(vtest) $ pip install numpy
Collecting numpy
Cache entry deserialization failed, entry ignored
Using cached https://files.pythonhosted.org/packages/d2/ab/43e678759326f728de861edbef34b8e2ad1b1490505f20e0d1f0716c3bf4/numpy-1.17.4-cp36-cp36m-manylinux1_x86_64.whl
Installing collected packages: numpy
Successfully installed numpy-1.17.4
(vtest) $
我正在寻找numpy-1.17.4-cp36-cp36m-manylinux1_x86_64.whl
轮子的缓存位置?
$ sudo updatedb
$ locate numpy-1.17.4
$ # nada ;(
文档https://pip.pypa.io/en/stable/reference/pip_install/#wheel-cache告诉我们Pip will read from the subdirectory wheels within the pip cache directory and use any packages found there.
$ pip --version
pip 9.0.1 from ~/venvs/vtest/lib/python3.6/site-packages (python 3.6)
$
要回答Hamza Khurshid numpy不在〜/ .cache / pip / wheels上
$ find ~/.cache/pip/wheels -name '*.whl' |grep -i numpy
$
.cache / pip / wheels似乎仅用于用户创建的轮子,而不用于下载的轮子,我应该使用export PIP_DOWNLOAD_CACHE=$HOME/.pip/cache
吗?
答案 0 :(得分:1)
请参考以下路径查找WHL缓存文件。
在Windows中,
%USERPROFILE%\AppData\Local\pip\cache
在Unix中,
~/.cache/pip
在macOS中,
~/Library/Caches/pip.
答案 1 :(得分:1)
消息
Using cached https://files.pythonhosted.org/packages/d2/ab/43e678759326f728de861edbef34b8e2ad1b1490505f20e0d1f0716c3bf4/numpy-1.17.4-cp36-cp36m-manylinux1_x86_64.whl
意味着pip使用的是HTTP缓存,而不是wheel缓存(如您所述,仅用于本地构建的wheel)。
HTTP缓存中的文件名是所请求URL的sha224。
您可以像这样检索文件
$ pwd
/home/user/.cache/pip/http
$ find . -name "$(printf 'https://files.pythonhosted.org/packages/65/26/32b8464df2a97e6dd1b656ed26b2c19460
6c16fe163c695a992b36c11cdf/six-1.13.0-py2.py3-none-any.whl' | sha224sum - | awk '{print $1}')"
./f/6/0/2/d/f602daffc1b0025a464d60b3e9f8b1f77a4538b550a46d67018978db
文件的格式虽然不稳定,但取决于pip版本。有关详细信息,您可以查看pip使用的最新cachecontrol中使用的实现。
如果要获取实际文件,一种更简单的方法是使用pip download
,如果文件与要下载的URL匹配,它将把文件从缓存中移到当前目录中。