Skip to content

修改Pip数据目录

修改 pip 的数据目录,即更改 pip 安装包的缓存和下载位置。可以通过设置环境变量或在命令中指定选项来实现。以下是几种方法,可以帮助你更改 pip 的缓存目录和目标安装目录。

检查你的系统上是否安装了 pip

Bash
pip --version

# 或者如果你使用的是 Python 3
pip3 --version
pip --version

# 或者如果你使用的是 Python 3
pip3 --version

如果 pip 已经安装,你会看到类似如下的输出(具体的版本号可能会有所不同):

Bash
pip 25.0 from /root/miniconda3/envs/py310/lib/python3.10/site-packages/pip (python 3.10)
pip 25.0 from /root/miniconda3/envs/py310/lib/python3.10/site-packages/pip (python 3.10)

查看 pip 安装包的缓存和下载位置

pip 默认会在你的系统上设置缓存和下载位置,用于存储已下载的包以及构建缓存。这些位置取决于操作系统和 pip 的版本。可以使用命令行参数查看或确定 pip 的缓存和下载位置:

Bash
pip config debug
pip config debug

本教程输出样例如下:

img

从以上输出来看,当前没有找到任何配置文件 (pip.conf)。这意味着 pip 正在使用其默认设置,包括默认的缓存目录。直接查看 pip 的缓存目录:

Bash
pip cache dir
pip cache dir

这个命令会输出 pip 当前使用的缓存目录路径。对于大多数 Linux 系统,默认的缓存目录通常是用户主目录下的 .cache/pip,即 /root/.cache/pip(如果你是以 root 用户运行的话)。

截图如下:

img

修改 pip 的缓存目录

方法 1:设置环境变量

通过设置环境变量,可以全局改变 pip 的行为,而无需每次运行 pip 命令时都指定参数。

  • 你可以通过设置 PIP_CACHE_DIR 环境变量来指定新的缓存目录:
  • 假如将 pip 安装包的缓存和下载位置更改到 /data/pip/cache目录下:
bash
# 直接在终端执行,仅对当前终端会话临时有效
export PIP_CACHE_DIR=/data/pip/cache

# 如果你希望对所有新打开的终端会话都应用这个设置,可以将上述命令添加到你的 ~/.bashrc 文件中,然后重新加载配置文件
# 对于 Bash 用户
echo 'export PIP_CACHE_DIR=/data/pip/cache' >> ~/.bashrc 
source ~/.bashrc
# 直接在终端执行,仅对当前终端会话临时有效
export PIP_CACHE_DIR=/data/pip/cache

# 如果你希望对所有新打开的终端会话都应用这个设置,可以将上述命令添加到你的 ~/.bashrc 文件中,然后重新加载配置文件
# 对于 Bash 用户
echo 'export PIP_CACHE_DIR=/data/pip/cache' >> ~/.bashrc 
source ~/.bashrc

验证:

Bash
pip cache dir
pip cache dir

方法 2:使用 pip 配置文件

编辑或创建 pip 的配置文件以永久更改缓存目录。根据需要选择全局配置文件或用户级配置文件:

  • 全局配置文件:通常位于/etc/pip.conf
  • 用户级配置文件:可以是~/.pip/pip.conf~/.config/pip/pip.conf

如果没有找到这些配置文件,意味着尚未对 pip 进行任何自定义配置。这些文件只有在用户或管理员明确创建它们以自定义 pip 配置时才会存在。默认情况下,pip 使用其内置的默认配置,并不会自动创建这些配置文件。你可以根据需要创建这些文件来调整 pip 的行为。无论是全局配置还是用户级别的配置,都可以用来改变 pip 的缓存目录和目标安装目录等设置。

修改用户级别的配置文件:

Bash
mkdir -p ~/.config/pip  # 如果目录不存在,则创建
vim ~/.config/pip/pip.conf
mkdir -p ~/.config/pip  # 如果目录不存在,则创建
vim ~/.config/pip/pip.conf

配置文件中添加以下内容并保存退出:

Bash
[global]
cache-dir = /new/path/to/pip/cache # 这里写你自己的pip缓存目录,例如cache-dir = /data/pip/cache
[global]
cache-dir = /new/path/to/pip/cache # 这里写你自己的pip缓存目录,例如cache-dir = /data/pip/cache

如果你想为所有用户更改此设置,需编辑全局配置文件;若只为当前用户更改,则编辑用户级别的配置文件。

修改 pip 配置文件之后,并不需要重启任何服务。新的配置会在你下次运行 pip 命令时自动生效。但修改完配置文件后需要使用pip cache dir验证一下缓存地址,如果输出还是原来的缓存地址,执行pip config list查看所有配置项,看是否有类似输出:

:env:.cache-dir='/root/.cache/pip'

global.cache-dir='/data/pip/cache'

这种情况说明有两个配置项影响了 pip 的缓存目录。其中,:env:.cache-dir='/root/.cache/pip' 表示当前环境变量 PIP_CACHE_DIR 设置的值为 /root/.cache/pipglobal.cache-dir='/data/pip/ljq'是配置文件中设置的全局缓存目录。由于环境变量的优先级高于配置文件中的设置,pip 实际上会使用环境变量指定的缓存目录(即 /root/.cache/pip)。即使你在 ~/.bashrc 或其他常见的 shell 配置文件中没有找到这个环境变量的定义,它也可能是在其他地方设置的。

这种情况下,先使用命令echo $PIP_CACHE_DIR检查当前环境变量,如果输出为 /root/.cache/pip,则表明该环境变量确实在当前会话中被设置。如果是临时设置,可以通过 unset PIP_CACHE_DIR 来取消它。如果是在某个配置文件中设置的,可以根据需要修改或删除相关行。

方法 3:在命令中直接指定缓存目录

对于一次性操作,可以直接在 pip 命令中使用 --cache-dir 参数来指定缓存目录:

Bash
pip install --cache-dir /new/path/to/pip/cache <package_name>  # 你自己的pip缓存目录
pip install --cache-dir /new/path/to/pip/cache <package_name>  # 你自己的pip缓存目录

修改 pip 的目标安装目录

方法 1:使用 --target 参数

你可以在每次运行 pip install 时使用 --target 参数指定安装目录:

Bash
pip install --target /data/pip/installation <package_name>
pip install --target /data/pip/installation <package_name>

上述命令会将 package_name 库安装到 /data/pip/installation 目录下。

方法 2: 配置文件设置

通过修改 pip 的配置文件,可以全局指定安装目录。

Linux 的配置文件通常位于 ~/.pip/pip.conf 或者 ~/.config/pip/pip.conf,如果配置文件不存在,需要手动创建。然后在配置文件中添加以下内容:

Bash
[install]
target = /data/pip/installation
[install]
target = /data/pip/installation

保存配置文件后,后续使用 pip install 安装的包都会被安装到指定目录。

方法 3:设置 PIP_TARGET 环境变量

通过设置 PIP_TARGET 环境变量,可让之后所有的 pip install 命令都将包安装到指定目录。

临时添加 PIP_TARGET环境变量:

Bash
export PIP_TARGET==/data/pip/installation
export PIP_TARGET==/data/pip/installation

可以将 export PIP_TARGET=/data/pip/installation 语句添加到 .bashrc

Bash
echo 'export PIP_TARGET=/data/pip/installation' >> ~/.bashrc
source ~/.bashrc
echo 'export PIP_TARGET=/data/pip/installation' >> ~/.bashrc
source ~/.bashrc

这样设置后,本次命令行会话中使用 pip install 安装的包都会被安装到指定目录。

创建目标目录并设置权限

无论采用哪种方法,如果你指定的安装目录不是用户默认有写入权限的目录(如系统级别的目录或者其他用户的主目录),那么需要提前创建该目录并设置合适的权限。

txt
sudo mkdir -p /data/pip/cache
sudo mkdir -p /data/pip/installation
chown -R $USER:$USER /data/conda  # 根据需要更改用户和组
chmod -R 755 /data/conda          # 设置适当的权限
sudo mkdir -p /data/pip/cache
sudo mkdir -p /data/pip/installation
chown -R $USER:$USER /data/conda  # 根据需要更改用户和组
chmod -R 755 /data/conda          # 设置适当的权限