Ubuntu中pip 缓存和conda的缓存路径修改

系统:Ubuntu22.04

I. Preface

一般固态装系统,机械硬盘存数据,所以如果什么都装到/home路径下,很快就爆了,特别是多人用的时候。

复制代码
Filesystem Size Used Avail Use% Mounted on
tmpfs 13G 3.8M 13G 1% /run
/dev/nvme0n1p6 187G 24G 154G 14% /
tmpfs 63G 1.2M 63G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
efivarfs 512K 168K 340K 34% /sys/firmware/efi/efivars
/dev/nvme0n1p5 944M 210M 669M 24% /boot
/dev/nvme0n1p7 291G 277G 4.0K 100% /home
/dev/nvme0n1p1 256M 41M 216M 16% /boot/efi
/dev/sda3 2.0T 28K 1.9T 1% /data
tmpfs 13G 116K 13G 1% /run/user/1000
tmpfs 13G 140K 13G 1% /run/user/1002

II. Problem and Solution

先查看当前的conda,pip路径:

复制代码
which conda
which python
which pip

然后会print出大概如下的信息:

复制代码
/home/user/anaconda3/condabin/conda
/home/user/anaconda3/bin/python
/home/user/anaconda3/bin/pip

从路径就可以看出全都放在/home路径下,如果一开始安装系统的时候给的空间足够大,也没问题,但是如果空间不够就很麻烦,连bashrc都改不了。

如果想知道具体/home下哪个用户用了最多空间也可以用如下指令查看:sudo du -h --max-depth=1 /home | sort -h


解决方案也很简单,分三步:

  • 先备份anaconda的环境,然后删掉,重新安装,安装到有足够空间的机械硬盘路径下
  • 更改pip的缓存路径
  • 更改conda的缓存路径
  1. Anaconda 备份,删除和重装

1)先备份,可以导出全部环境名称:

bash 复制代码
/home/user/anaconda3/bin/conda env list > /data/home-data/user/conda_env_list_backup.txt

如果某个环境很重要,比如叫 robot,可以导出:

bash 复制代码
/home/user/anaconda3/bin/conda env export -n robot > /data/home-data/user/robot_env.yml

2)删除anaconda

用如下指令sudo rm -rf /home/user/anaconda3,记得修改对应的user name。

3)重新安装conda

先下载anaconda xxx.sh安装包,然后bash安装它,里面最重要的是设置路径,它默认是/home下的,所以一定要修改,如从/home/user/anaconda3改成/data/home-data/user/anaconda3

安装完后,修改bashrc,可选,个人喜欢通过指令启动conda环境,如setconda,在bashrc最后写入如下内容,以后再打开terminal就不会像之前用export和source anaconda路径那样,直接进入conda的base环境,而是你需要再调用,optional.

bash 复制代码
setconda() {
    local CONDA_DIR="/data/home-data/user/anaconda3"

    if [ ! -f "$CONDA_DIR/bin/conda" ]; then
        echo "Conda not found at $CONDA_DIR"
        return 1
    fi

    __conda_setup="$("$CONDA_DIR/bin/conda" "shell.bash" "hook" 2> /dev/null)"

    if [ $? -eq 0 ]; then
        eval "$__conda_setup"
    elif [ -f "$CONDA_DIR/etc/profile.d/conda.sh" ]; then
        . "$CONDA_DIR/etc/profile.d/conda.sh"
    else
        export PATH="$CONDA_DIR/bin:$PATH"
    fi

    unset __conda_setup
    conda activate base
}
  1. 更改pip的缓存路径
bash 复制代码
setconda
mkdir -p /data/home-data/user/.cache/pip
python -m pip config set global.cache-dir /data/home-data/user/.cache/pip

检查:

bash 复制代码
python -m pip config list

应该看到类似:

text 复制代码
global.cache-dir='/data/home-data/jiajie/.cache/pip'
  1. 更改conda的缓存路径
bash 复制代码
setconda
conda config --add pkgs_dirs /data/home-data/user/anaconda3/pkgs

检查:

复制代码
conda config --show pkgs_dirs

最后再整体检查一下路当前的conda,pip路径:

复制代码
which conda
which python
which pip

然后会print出大概如下的信息:

复制代码
/data/home-data/user/anaconda3/condabin/conda
/data/home-data/user/anaconda3/bin/python
/data/home-data/user/anaconda3/bin/pip

这样就说明成功了

相关推荐
Lucis__10 小时前
Redis持久化机制解析
redis·缓存·操作系统·文件·非关系型数据库·1024程序员节
李纲明10 小时前
WordPress 后台登录马上被踢回登录页:Cookie 域、HTTPS、盐值和页面缓存怎么查
运维·缓存·https·php·wordpress·cookie
码士集团小青13 小时前
面霸篇:高频 Java 基础问题(核心卷一)
linux·服务器·数据库·redis·缓存·1024程序员节
一条泥憨鱼15 小时前
【Redis | 黑马点评】附近商铺功能源码解读
数据库·redis·缓存
小南家的青蛙19 小时前
Redis的资料
redis·缓存·1024程序员节
深圳市恒星物联科技有限公司20 小时前
排水管网监测后期运维成本高吗?成本构成与控制策略分析
运维·缓存
黄俊懿21 小时前
【架构师从入门到进阶】第七章:缓存和存储的优化思路——第一节:缓存概述
数据结构·数据库·分布式·缓存·架构·系统架构·1024程序员节
李纲明1 天前
WordPress 挂上 Cloudflare 后询盘和后台异常:缓存规则、SSL 模式和真实 IP 怎么核
运维·缓存·https·cdn·wordpress·cloudflare
Shaoshing2 天前
缓存一致问题及常见解决方案
java·缓存
码士集团小青2 天前
Redis 缓存击穿(失效)、缓存穿透、缓存雪崩怎么解决?
数据库·redis·缓存