最稳妥的Python环境起点是Miniconda而非Anaconda,因其精简、可控;安装需匹配系统架构(x86_64或aarch64),静默安装后手动source conda.sh初始化;创建环境必须显式指定python=主次版本号(如python=3.9),避免依赖解析失败;pyenv与conda不可混用PATH,应确保conda路径优先;deactivate后默认使用base环境而非系统Python,关键任务须硬编码系统Python绝对路径。

直接装 Miniconda 是最稳妥的起点
别碰 Anaconda —— 它自带太多冗余包,启动慢、占用大、更新易冲突。Miniconda 是精简版,只含 conda 和 Python 解释器,后续按需装包,可控性强。
安装前确认系统架构:uname -m。x86_64 用标准链接,aarch64(如树莓派、苹果 M 系列 Linux 虚拟机)必须用对应 aarch64 安装包,否则会报 cannot execute binary file: Exec format error。
- 下载并静默安装(跳过交互):
curl -sL https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh | bash -s - -b -p $HOME/miniconda3
- 立即初始化 shell:
source $HOME/miniconda3/etc/profile.d/conda.sh - 验证:
conda --version和which conda应指向$HOME/miniconda3/bin/conda
注意:不要运行 conda init 自动改 .bashrc —— 它可能插入重复或错误的 PATH 行,导致后续 python 命令失效。手动 source 更可控。
conda create -n 时必须显式指定 python= 版本号
默认 conda create -n myenv 会复用当前 base 环境的 Python 版本,不是最新版,也不是你想要的版本。想建 Python 3.9 环境,就得写全:conda create -n py39 python=3.9。
立即学习“Python免费学习笔记(深入)”;
常见错误是只写 python=3.9.18 —— conda 不识别补丁号,只认主次版本(3.9 或 3.10)。写错会卡在解析依赖,最后报 ResolvePackageNotFound。
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
- 查可用版本:
conda search "^python$" --channel conda-forge(加--channel conda-forge才能看见更多旧版,比如 3.7、3.8) - 建环境后必须先激活再用:
conda activate py39,此时which python指向$HOME/miniconda3/envs/py39/bin/python - 不激活就直接
python,仍走 base 或系统默认,和新建环境完全无关
pyenv 和 conda 不要混用 PATH,尤其别让 pyenv shim 在 conda 前面
两者都靠修改 PATH 实现切换,但机制冲突:pyenv 插入 ~/.pyenv/shims 到 PATH 最前,所有 python/pip 命令先被它拦截;而 conda activate 是临时把环境 bin 目录插到 PATH 最前。如果 shims 在前,conda 激活后 python 仍走 pyenv 分发逻辑,可能调错解释器。
典型症状:conda activate py39 后 python --version 还是 3.11(pyenv global 设的),which python 显示 ~/.pyenv/shims/python,而非 conda 环境路径。
- 解决方法:在 shell 配置文件(如
~/.bashrc)中,确保pyenv init的两行(eval "$(pyenv init -)"和eval "$(pyenv init --path)")放在conda.shsource 之后 - 或者更彻底:放弃 pyenv 全局管理,只用 conda 管理全部 Python 版本,把 pyenv 当纯编译工具(仅用于装那些 conda 没收录的冷门版本,如 3.6.15)
- 检查顺序:
echo $PATH | tr ':' '\n' | head -5,应看到 conda 的 bin 在 pyenv shims 上方
conda deactivate 后 python 回退到 base,不是系统默认
很多人以为 deactivate 会让 python 变回 /usr/bin/python,其实不会。conda 的 base 环境本身就是一个独立 Python 环境,默认启用。一旦你装了 Miniconda,python 命令在未激活任何环境时,就指向 base 的 python —— 它可能和系统自带的 python3 版本不同,也可能缺少 distutils 导致 apt install 报错。
如果你需要某些脚本或系统工具严格使用系统 Python(如 Ubuntu 的 /usr/bin/python3.12),就不能依赖未激活状态下的 python 命令,而要显式调用完整路径:/usr/bin/python3.12 script.py。
真正安全的做法是:把 base 环境也当成一个项目环境来用,日常开发全走 conda activate;系统级任务(如运维脚本)一律硬编码绝对路径,不碰 python 别名。

















