Thư mục bộ đệm pip ở đâu


93

Ở đâu Python pip thư mục bộ nhớ cache? Tôi đã gặp lỗi trong khi cài đặt và hiện đang cài đặt lại các gói bằng tệp bộ đệm

Thư mục đó ở đâu? Tôi muốn sao lưu chúng để cài đặt trong tương lai. Nó có khả thi không?

Ví dụ, tôi có cái này:

Using cached cssselect-0.9.1.tar.gz

Tôi đã tìm kiếm trên google cho thư mục này nhưng bất cứ thứ gì tôi thấy, là tìm hiểu cách cài đặt từ một thư mục, tôi muốn tìm thư mục bộ nhớ cache mặc định.

Và một câu hỏi khác, những tập tin bộ nhớ đệm này sẽ nằm trong thư mục đó hay sẽ sớm bị loại bỏ?


1
Nó phụ thuộc vào hệ điều hành.
Martin Konecny

cửa sổ @MartinKonecny
Arash Hatami

3
Tôi tin rằng nó có ~\AppData\Local\pip\cachetrên Windows.
fredrik

có nhiều tệp có tên không rõ ràng như '0f4017d43a13156e41129019e85a69fcc2dd34e6904ed88395bb5451' ... tôi có thể tìm chính xác tệp 'cssselect-0.9.1.tar.gz' không ??? @fredrik
Arash Hatami

2
Bộ nhớ đệm không phải lúc nào con người cũng có thể đọc được, như trong trường hợp này.
fredrik

Câu trả lời:


33

Nó phụ thuộc vào hệ điều hành.

Với pip 20.1 trở lên, bạn có thể tìm thấy nó bằng:

pip cache dir

Ví dụ với macOS:

$ pip cache dir
/Users/hugo/Library/Caches/pip

Tài liệu:


Yeah ... Đó là một câu hỏi cũ (khoảng 4 năm: D)
Arash Hatami

1
Cũ nhưng vẫn còn phù hợp! github.com/hugovk/pypistats/pull/105/commits/…
Hugo

Xem thêm PIP_CACHE_DIRbiến môi trường để đặt thư mục này.
Alex Povel

123

Vị trí mặc định cho thư mục bộ đệm phụ thuộc vào Hệ điều hành:

Unix

~ / .cache / pip và nó tôn trọng thư mục XDG_CACHE_HOME.

hệ điều hành Mac

~ / Library / Caches / pip

các cửa sổ

<CSIDL_LOCAL_APPDATA> \ pip \ Cache

Bộ nhớ đệm bánh xe

pip sẽ đọc từ các bánh xe của thư mục con trong thư mục bộ đệm pip và sử dụng bất kỳ gói nào được tìm thấy ở đó. [ảnh cắt]

https://pip.pypa.io/en/latest/reference/pip_install/#caching

Vị trí của thư mục bộ nhớ cache có thể được thay đổi thông qua tùy chọn dòng lệnh --cache-dir.


7
<CSIDL_LOCAL_APPDATA> ==% LocalAppData%
Winand

% LOCALAPPDATA% \ pip \ Cache
Alex78191

1
$XDG_CACHE_HOMEtrống rỗng. find ~/.cache/pip | grep -i tensorhiển thị tensorflow_determinismsilence_tensorflowbánh xe, nhưng không tensorflow-gpu. Tuy nhiên, pip install tensorflow-gpunói Using cached https://.../tensorflow_gpu-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl. Tôi nên tìm tệp này ở đâu khác?
bia

(Tôi cũng đã tải xuống tensorflow_gpu-2.0.0-cp37-cp37m-manylinux2010_x86_64.whlvà kiểm tra các bản sao bằng cách sử dụng fdupes, nhưng không thể tìm thấy bất kỳ ...)
bers

24

Pythonic và cách đa nền tảng:

import pip
from distutils.version import LooseVersion

if LooseVersion(pip.__version__) < LooseVersion('10'):
    # older pip version
    from pip.utils.appdirs import user_cache_dir
else:
    # newer pip version
    from pip._internal.utils.appdirs import user_cache_dir

print(user_cache_dir('pip'))
print(user_cache_dir('wheel'))

Dưới mui xe, nó bình thường hóa các đường dẫn, quản lý các vị trí khác nhau cho các hệ điều hành và nền tảng kỳ lạ và thông thường, thực hiện tra cứu sổ đăng ký Windows.

Có thể đáng nói, nếu bạn đã cài đặt các phiên bản Python khác nhau, 2.x'es và 3.x'es, chúng đều chia sẻ cùng một vị trí bộ nhớ cache.


5
ModuleNotFoundError: No module named 'pip.utils', pip 10.0.1 trên Ubuntu.
Gringo Suave

1
Nếu bạn muốn pipthư mục bộ nhớ cache của riêng của bạn cũng có thể chỉ cần sử dụng from pip._internal.locations import USER_CACHE_DIRhoặc python -c "from pip._internal.locations import USER_CACHE_DIR; print(USER_CACHE_DIR)"nếu bạn đã lấy những thứ trong một kịch bản vv
ryanjdillon

Vui lòng không đi vào _internalvà tìm nạp các giá trị. nội bộ của pip không được sử dụng như một thư viện và có thể thay đổi. pip cache dirtrên pip 20.1 trở lên là cách tốt nhất để nhận giá trị này.
pradyunsg

8

Bạn có thể sao lưu bánh xe liên quan thay vì cố gắng thực hiện sao lưu thư mục bộ đệm.

Tải xuống bánh xe cho csselect của phiên bản 0.9.1 thành /tmp/wheelhouse:

pip wheel --wheel-dir=/tmp/wheelhouse cssselect==0.9.1

Cài đặt bánh xe đã tải xuống:

pip install /tmp/wheelhouse/cssselect-0.9.1-py2-none-any.whl

cssselect-0.9.1-py2-none-any.whlTên tệp ổn định / có thể dự đoán được như thế nào?
Blaise

Phụ thuộc vào những gì người bảo trì đang làm trong setup.py khi đóng gói.
fredrik
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.