刚接触树莓派的朋友可能会疑惑:系统自带Python为什么还要装Miniconda?这个问题我当初也纠结过。简单来说,Miniconda就像个"Python环境管家",能帮你解决三个核心痛点:
第一是版本隔离。树莓派默认同时存在Python 2.7和Python 3.x,直接安装的包会混在一起。去年我做个OpenCV项目时,就因版本冲突浪费了两天时间。而Miniconda可以创建独立的虚拟环境,比如同时存在Python 3.6和3.9的环境互不干扰。
第二是依赖管理。普通pip安装的包都是全局的,不同项目需要的numpy版本可能冲突。通过conda可以给每个项目创建独立环境,比如:
bash复制conda create -n face_detection python=3.7 numpy=1.19
conda create -n data_analysis python=3.9 numpy=1.21
第三是ARM架构支持。树莓派用的是ARM芯片,很多Python包需要特殊编译。Miniconda官方仓库包含预编译好的ARM版包,比如Pandas、Matplotlib这些科学计算库,省去自己编译的麻烦。
在开始前,先打开终端输入:
bash复制uname -a
你会看到类似这样的输出:
code复制Linux raspberrypi 5.10.63-v7l+ #1459 SMP Wed Oct 6 16:41:10 BST 2021 armv7l GNU/Linux
关键看armv7l这个字段,说明是32位系统。如果是64位树莓派OS会显示aarch64。这个信息决定后面要下载哪个Miniconda安装包。
我建议先运行以下命令更新系统:
bash复制sudo apt update
sudo apt upgrade -y
sudo apt install -y bzip2 wget
特别是bzip2这个包,很多新手会漏装,导致后续安装报错"bzip2: command not found"。
到Miniconda官网找ARM版下载链接,当前最新版是:
bash复制wget https://repo.anaconda.com/miniconda/Miniconda3-py39_4.12.0-Linux-armv7l.sh
如果下载速度慢,可以用国内镜像:
bash复制wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py39_4.12.0-Linux-armv7l.sh
执行安装命令时有个关键细节:
bash复制bash Miniconda3-py39_4.12.0-Linux-armv7l.sh
不要用sudo!否则会导致权限问题。安装过程会询问:
安装完成后,需要激活配置:
bash复制source ~/.bashrc
验证安装:
bash复制conda --version
如果显示"conda: command not found",可能是PATH没生效,尝试重启终端。
如果用sudo安装过,需要修正权限:
bash复制sudo chown -R pi:pi /home/pi/miniconda3
这个命令把miniconda目录所有者改为pi用户。
修改conda配置:
bash复制conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --set show_channel_urls yes
更新conda:
bash复制conda update conda
推荐指定Python版本创建环境:
bash复制conda create -n myenv python=3.8
激活环境:
bash复制conda activate myenv
这时命令行前缀会变成(myenv),表示已在虚拟环境中。
如果遇到SSL错误,可以临时关闭验证:
bash复制conda config --set ssl_verify false
但更安全的做法是更新证书:
bash复制conda update --all
有些包在默认频道没有ARM版,可以添加树莓派专用源:
bash复制conda config --add channels rpi
然后尝试安装:
bash复制conda install -n myenv python=3.6 numpy scipy
如果conda activate没反应,可能是shell未初始化。手动设置:
bash复制source /home/pi/miniconda3/bin/activate
echo "source /home/pi/miniconda3/bin/activate" >> ~/.bashrc
查看所有环境:
bash复制conda env list
复制环境:
bash复制conda create --name newenv --clone oldenv
导出环境配置:
bash复制conda env export > environment.yml
在虚拟环境中安装包:
bash复制conda install numpy pandas
也可以用pip(但优先用conda):
bash复制pip install opencv-python
遇到冲突时,可以尝试:
bash复制conda install --freeze-installed package_name
如果需要卸载,按顺序执行:
bash复制rm -rf ~/miniconda3
rm -rf ~/.conda
然后编辑~/.bashrc,删除所有包含conda的PATH设置,最后执行:
bash复制source ~/.bashrc
我在实际项目中发现,用conda管理树莓派的Python环境确实省心很多。特别是做AI项目时,能轻松切换不同版本的TensorFlow和PyTorch。刚开始可能会觉得命令行操作有点复杂,但熟悉后效率会大幅提升。建议把常用conda命令做成alias,比如:
bash复制alias clist='conda env list'
alias cact='conda activate'
alias cde='conda deactivate'