Pip - 如何在Linux上更改pip缓存的目录?

20

我听说更改XDG_CACHE_DIR或XDG_DATA_HOME可以解决这个问题,但我没有尝试过。


export XDG_CACHE_DIR=<new path>
export XDG_DATA_HOME=<new path>

我也尝试过

pip cache dir --cache-dir <new path>

pip cache --cache-dir <new path>

--cache-dir <new path>

python --cache-dir <new path>

https://pip.pypa.io/en/stable/reference/pip/#cmdoption-cache-dir,当我输入

pip cache dir

它仍然在旧位置。我如何更改pip缓存的目录?


你尝试过使用 --cache-dir 参数吗?链接 - Paul Baiju
@PaulBaiju 是的,我上面提到了我有。 - user12314098
不是 pip cache --cache-dir <new path>,而是只有 --cache-dir <new path> - Paul Baiju
@PaulBaiju说:“--cache-dir:命令未找到”。 - user12314098
2
@PaulBaiju所建议的是pip <command> --cache-dir <path>。但据我所知,这只影响当前命令,而不是永久性的。例如:pip install something --cache-dir ~/.mycache - Gino Mempin
@GinoMempin 我明白了,不幸的是那并没有解决我的问题。我需要更改pip缓存的位置。我不确定他是否建议这样做,因为他没有在建议中添加“pip <command>”。 - user12314098
2个回答

34

TL;TR;: 除非你确信真的想这样做,否则不要全局更改XDG_CACHE_HOME


改变全局的XDG_CACHE_HOME(使用export), 就像一些人建议的那样,不仅会影响pip,还会影响其他应用程序。在大多数情况下,你根本不想搞得那么复杂,因为这根本没有必要。那么你有什么替代方案呢?你可以使用pip--cache-dir <dir>命令行参数,或者至少,如果你想这样做,你可以仅在调用pip时覆盖XDG_CACHE_HOME的值:
XDG_CACHE_HOME=<path> pip ...

通过使用shell alias特性,也可以使其更加永久。

alias pip="XDG_CACHE_HOME=<path> pip"

但是,但是,但是...根本不需要触碰XDG_CACHE_HOME,因为pip可以有自己的配置文件,您可以在其中覆盖所有默认值以满足您的需求,包括缓存目录的替代位置。此外,所有命令行开关都有相应的环境变量,在运行时pip会检查这些变量,这看起来是您进行调整的最干净的方法。

在您的特定情况下,--cache-dir可以通过PIP_CACHE_DIR环境变量提供。因此,您可以全局设置它:

export PIP_CACHE_DIR=<path>

或者每次调用:
PIP_CACHE_DIR=<path> pip ...

或者,您可以创建所述的pip配置文件并在其中进行设置。
有关pip配置文件和变量的更多信息,请参阅docs

6
为了简化另一个答案:

为了简化其他答案:

# find the config file location under variant "global"
pip config list -v

# create the file and add
[global]
cache-dir=/path/to/dir

# test if it worked
pip config list
pip cache dir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接