问题:pip的`–no-cache-dir`有什么用?
我最近看到--no-cache-dir
在Docker文件中使用了它。我以前从未见过该标志,并且帮助没有解释它:
--no-cache-dir Disable the cache.
- 问题:缓存了什么?
- 问题:高速缓存用于什么?
- 问题:为什么要禁用它?
回答 0
- 缓存为:藏匿起来以备将来使用
- 用于
- 存储
.whl
通过pip安装的模块的安装文件(等) - 存储源文件(
.tar.gz
等),以免在未到期时重新下载
- 您可能要禁用缓存的可能原因:
- 您的硬盘驱动器上没有空间
- 以前
pip install
以意外的设置 运行- 例如:
- 以前运行
export PYCURL_SSL_LIBRARY=nss
和pip install pycurl
- 希望新的运行
export PYCURL_SSL_LIBRARY=openssl
和pip install pycurl --compile --no-cache-dir
- 以前运行
- 例如:
- 您想要使Docker映像尽可能小
链接到文档
https://pip.pypa.io/en/stable/reference/pip_install/#caching – @emredjan https://pip.pypa.io/en/stable/reference/pip_install/ – @mikea
回答 1
我认为在--no-cache-dir
构建Docker映像时有充分的理由使用。缓存在Docker映像中通常是无用的,并且您可以通过禁用缓存来缩小映像大小。
回答 2
禁用pip缓存的另一个原因-如果您以不存在的用户身份运行pip,则将创建其主目录,但该目录由root拥有。
在chroot中构建Amazon AMI时,这会发生在我们身上-pip以构建器机器上的用户身份运行,而不是在构建AMI的chroot监狱中。这是有问题的,因为特定用户现在无法ssh到刚刚构建的内容,因为他们无法读取他们的.ssh目录。
我想不出任何其他原因来以不存在的用户身份运行pip,因此这是一个非常极端的情况。
回答 3
如果您在DockerFile中具有python依赖项,请减小docker映像的大小,因为您的私有注册表/人工工厂或部署服务可能会有大小限制。
回答 4
如果我不使用--no-cache-dir
选项,则安装某些pip软件包时会出现权限错误。
Building wheels for collected packages: pyyaml, bottleneck, nvidia-ml-py3
WARNING: Building wheel for pyyaml failed: [Errno 13] Permission denied: '/home/user/.cache/pip/wheels/b1'
WARNING: Building wheel for bottleneck failed: [Errno 13] Permission denied: '/home/user/.cache/pip/wheels/92'
WARNING: Building wheel for nvidia-ml-py3 failed: [Errno 13] Permission denied: '/home/user/.cache/pip/wheels/7f'
chown /.cache
文件夹由于某种原因没有帮助,但--no-cache-dir
可以正常工作。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。