Linux独立用户安装Miniconda:Python环境隔离与权限管理实践

发布时间:2026/9/30 4:28:19
Linux独立用户安装Miniconda:Python环境隔离与权限管理实践 1. 为什么要在Linux上单独建用户装Miniconda先说结论在 Linux 服务器上做 Python 开发最稳妥的路径不是用系统自带 Python也不是直接用 root 一把梭而是新建一个普通用户然后在它的家目录里装 Miniconda。这个组合我在自己的服务器和公司的开发机上反复验证过踩过坑之后觉得值得单独写一篇笔记记录完整过程。先理清一个概念上的误区。很多刚接触 Linux 的同学会觉得我直接用 root 装不就行了行倒是行但 root 装的 Miniconda 会面临几个实际问题权限边界模糊、环境变量污染、多个开发者共用一台机器时互相影响。比如你在 root 下用pip install装一个包这个包是全局生效的如果另一位同事也要装同一个包的不同版本那他只能改你的环境或者再建一套虚拟环境非常被动。更关键的是root 装的东西如果路径写死在/root/miniconda3普通用户根本读不了——因为/root目录默认权限是 700其他用户连cd进去的资格都没有。所以就引出了这篇笔记的核心流程用 root 或 sudo 创建新用户、给用户配置好权限和 shell再切到新用户身份去安装 Miniconda。这样做的直接好处有三个环境完全隔离安装路径、配置文件、虚拟环境都锁在家目录下不用动系统自带的 Python避免影响/usr/bin/python依赖的底层工具比如 yum、apt 都可能依赖系统 Python后续做多环境管理比如一个跑 TensorFlow、一个跑 PyTorch非常干净删掉整个用户目录就是完全卸载。另外一个角度是这种独立用户 独立 conda 环境的模式其实是生产环境的常见标配。不管你是给深度学习工作站配环境还是给公司内部的数据分析服务器落地 Python 生态这套流程都适用。对于面试接触过 Linux 运维岗位的朋友这也是高频考察点——面试官经常让你在 Linux 上新建用户并给他配置 Python 环境考的就是你对权限模型和 PATH 变量理解得是否透彻。好接下来我按实际操作顺序把每一步的命令、踩坑点、验证方法全部写清楚。我用的是 CentOS 7.9 和 Ubuntu 22.04 双环境做过验证命令主体通用个别细节我会标注两个发行版的差异。2. 前置准备先搞清楚 Linux 版本和权限情况2.1 确认系统版本避免命令不兼容动手之前先把系统搞清楚。不同发行版的默认 shell、用户管理命令、包管理器都有差异虽然创建用户和装 Miniconda 的核心逻辑一致但用错命令会很尴尬。cat /etc/os-release看到 NAME 那行就知道是 CentOS 还是 Ubuntu。如果是 CentOS/RHEL 系下面两节我给的命令直接用如果是 Ubuntu/Debian 系记得把默认 shell 配置和useradd参数稍微调整具体差异我在关键步骤会单独标出来。然后确认当前登录身份whoami id如果你当前就是 root那可以直接继续如果你只是普通用户但有 sudo 权限那所有需要管理员权限的命令都要加sudo前缀。在真实工作场景里很多公司不会直接给你 root 密码而是让你用普通用户 sudo所以后面我两种方式都会写。2.2 检查系统里是否已经有 Python这一步很多人会忽略但很重要。看一下系统自带 Python 的版本python --version python3 --version如果系统里已经有 Python 3.6 甚至 3.8那为什么要装 Miniconda这个问题我在实际中被人问过太多次了。理由很简单你接下来可能要用 Jupyter Notebook、要装 pandas/numpy 这类科学计算包、要创建不同的项目环境系统自带 Python 只适合系统工具调用不适合做开发环境。拿 CentOS 7 举例系统自带 Python 2.7很多系统工具yum 等依赖它你要是用 pip 给这个 Python 装包极有可能把系统搞崩。Miniconda 则是一个完全独立的 Python 发行版自带 conda 包管理器它可以把 Python 版本、第三方库、运行环境都管理在你自己的目录里和系统 Python 互不干扰。2.3 确认网络和磁盘空间网络安装 Miniconda 需要从官网或镜像站下载安装脚本确保机器能联网。公司内网机器可能需要配代理我后面提到一个比较隐蔽的坑点。磁盘Miniconda 本体很小不到 100MB但装完之后创建虚拟环境、装包会膨胀很快建议df -h看一眼家目录所在分区有没有至少 5GB 余量深度学习环境最好留 20GB 以上。我用过的经验是确认完这三项之后再动手后面基本不会卡壳。3. 创建新用户useradd 的全流程详解3.1 先规划好用户名和安装目录这一步看着简单但提前规划能避免返工。先说用户名比如我这次要创建一个开发测试用的账户那就叫devuser。规划内容清单如下用户名devuser用户组默认同名组devuser如果你希望多个用户共享一个组可以用-g指定家目录/home/devuser登录 shell/bin/bashMiniconda 安装位置/home/devuser/miniconda3为什么 Miniconda 装在家目录这里有个核心考量Conda 的默认行为是把所有配置写在安装目录和用户家目录下装在家目录里用户对这个目录有完整权限不需要 sudo 就能创建虚拟环境、写配置文件。而如果装在/opt/miniconda3这种全局位置普通用户就没有写权限初始化环境时还要去处理共享目录的权限复杂度直线上升。3.2 执行创建命令CentOS 和 Ubuntu 通用sudo useradd -m -s /bin/bash devuser逐参数拆解-m同时创建家目录/home/devuser。这个参数非常关键不写的话用户没有家目录后续 conda 初始化会出各种奇异问题。-s /bin/bash指定登录 shell 为 bash。不写的话 CentOS 默认可能是 bash 没问题但是 Ubuntu 上可能默认是 sh交互体验很差所以强烈建议显式指定。如果你用的是 Ubuntu 且希望创建交互式体验更好的用户也可以用adduser devuser交互式创建效果类似但更贴心——它会自动帮你设密码、填用户信息。但从脚本化管理的角度useradd更可控。两种方式我用下来自己更习惯useradd加大参数的方式原因后面说。创建完成后可以验证id devuser grep devuser /etc/passwd/etc/passwd里会出现一行格式是devuser:x:1000:1000::/home/devuser:/bin/bash这表示用户 ID 是 1000、组 ID 是 1000、家目录正确、shell 正确。3.3 设置密码创建后立刻做才安全sudo passwd devuser系统会提示输入两次密码输入时屏幕没有任何显示正常现象别以为自己没敲进去。设置完成后还可以顺手强制用户下次登录时改密码sudo passwd -e devuser # 让密码立即过期下次登录必须先改这个在临时给同事开账号时特别有用密码你自己定一个初始值对方第一次登录时被迫改成只有自己知道的密码安全性和便利性都有了。a. 补充将新用户加入 sudo 组如果这个用户以后需要执行管理员操作你需要把它加入 sudo 权限组CentOS/RHEL 系sudo usermod -aG wheel devuserUbuntu/Debian 系sudo usermod -aG sudo devuser注意-aG里的-a是 append 的意思表示追加进组而不移出原有组。漏了-a的话会把这个用户从其他组里拽出来可能在权限上引发意想不到的问题这是新手最容易踩的坑。但是话说回来如果这个用户纯粹只是用来跑 Python 开发、跑 Jupyter、做数据分析不涉及系统管理不加入 sudo 组反而更安全。权限最小化原则在真实运维中非常重要尽量给用户够用的最小权限出了问题也不会波及整个系统。3.4 创建完成后的目录调整可选项创建用户之后家目录里默认会有一些隐藏文件比如.bashrc、.bash_profile这些通常是从/etc/skel模板目录拷贝过来的。如果你希望这个新用户一登录就有自定义别名或环境变量可以直接改/etc/skel/.bashrc再创建用户这样新用户的家目录会自动带上另一种是创建后直接编辑devuser家目录下的.bashrc后面我会讲怎么加 conda 初始化代码。还有一个小细节如果创建用户之前已经建过/home/devuser目录那么useradd -m会报错说目录已存在或者不拷贝骨架文件。我遇到过这种情况解决方式是先备份旧目录用useradd -M创建用户但不建家目录再手动把骨架拷贝过去并chown授权。4. 切换用户身份为安装 Miniconda 做准备安装 Miniconda 的核心原则是以目标用户身份执行安装不要用 root 去装。原因前面提过——root 装会写/root路径普通用户不可访问而且 conda 安装时会往当前用户的家目录写入初始化配置如果用 root 装配置就写进 root 的家目录了等你切到 devuser 一看conda 命令根本不识别。切换到新用户的方式有两种su - devuser注意su和su -的区别带-表示完美模拟登录会重新加载该用户的完整环境包括 PATH、家目录等不带-只切换身份环境变量可能还残留 root 的。使用 root 权限安装 Miniconda 时经常出现明明装了却找不到 conda的问题多半就是没做su -这种干净切换。如果你是通过 SSH 远程操作更推荐直接开一个新终端用ssh devuser服务器IP登录这样环境最干净而且还能顺便测试刚才设置的密码是否可用。同时验证当前身份确认没有歧义whoami echo $HOME pwd这一步的输出应该是devuser、/home/devuser、/home/devuser三者对不上就要排查。5. Miniconda 安装细节下载脚本到配置环境5.1 下载安装脚本官方源和清华源二选一去 Miniconda 官网https://docs.conda.io/en/latest/miniconda.html找到对应平台的安装脚本。Linux x86_64 的脚本名一般是Miniconda3-latest-Linux-x86_64.sh。直接用 wget 拉取cd ~ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh国内服务器直接从官方源拉取可能会很慢甚至超时这种情况我通常用清华 TUNA 镜像源wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh这个镜像同步频率很高用起来没什么区别。你也可以先去清华镜像站页面手动下载再上传到服务器适合没有命令行下载习惯的朋友。遇到中间断流的话可以加-c参数断点续传wget -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh下载完顺手验证一下文件大小一般 90-100MB 左右。如果文件只有几 KB大概率是网络拦截或者姿势不对直接删掉重新下。5.2 执行安装脚本全部回答 yes安装脚本用 bash 执行bash Miniconda3-latest-Linux-x86_64.sh安装过程中会有几个交互问答依次处理如下显示 license 协议一直按回车翻页然后输入yes询问安装路径直接回车使用默认的/home/devuser/miniconda3关键问题是否运行conda init初始化 shell输入yes。第三问特别重要它会在你的.bashrc里追加一段 conda 初始化代码这样每次登录自动激活 base 环境。如果你这里点了 no后果是后续每条 conda 命令都要手动写全路径/home/devuser/miniconda3/bin/conda极其憋屈。安装完成后按提示执行source ~/.bashrc让配置生效。重新连接终端或重新su - devuser也可以。5.3 验证安装是否成功按顺序执行这几条命令which conda conda --version python --versionwhich conda的输出应该是/home/devuser/miniconda3/bin/conda。如果输出是/usr/bin/conda或干脆command not found说明 PATH 有问题后面讲排查。5.4 conda init 到底做了什么为了后面排查问题方便我们理解一下conda init的本质。它不仅仅是往.bashrc里塞几行字而是创建了一个 shell 函数和环境切换机制。打开.bashrc看一下尾部你会看到类似# conda initialize # !! Contents within this block are managed by conda init !! __conda_setup$(/home/devuser/miniconda3/bin/conda shell.bash hook 2 /dev/null) if [ $? -eq 0 ]; then eval $__conda_setup else if [ -f /home/devuser/miniconda3/etc/profile.d/conda.sh ]; then . /home/devuser/miniconda3/etc/profile.d/conda.sh else export PATH/home/devuser/miniconda3/bin:$PATH fi fi unset __conda_setup # conda initialize 看懂这段逻辑之后你就明白几件事conda 不是简单地把 bin 目录塞进 PATH 就完了它会优先尝试 hook 方式加载 conda 的 shell 函数实现切换环境时动态修改 PATH的效果如果 hook 失败再退回到直接 export PATH。这也是为什么很多人直接export PATH/home/devuser/miniconda3/bin:$PATH手动配置后conda 命令能用但conda activate经常报错的根本原因——缺少了 shell 函数的注入。所以排错的第一原则如果你以前手动写过 PATH 导出先把那行注释掉让 conda init 管理一切。6. 配置国内镜像源加速包下载6.1 为什么必须配镜像源Miniconda 装好之后conda 默认从官方源下载包网速在国内往往一言难尽。我在开发机上实测过用默认源装 numpy 可能要等 10 分钟配置清华源之后只要 20 秒。如果你们公司自建了 conda 镜像源或者使用了其他加速方案也可以换成你们内部的地址。6.2 写入配置文件推荐用命令行写入一次性把 conda 和 pip 都配好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/free/ conda config --set show_channel_urls yes第一条命令把清华源添加到.condarc的最上方优先级最高后续的 channel 按优先级依次排列。写入后可以查看cat ~/.condarc一个比较干净的配置大概是channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ - defaults show_channel_urls: true注意清华源目前对pkgs/main和pkgs/free这两个 channel 维护比较稳定conda-forge也有镜像。如果你需要装 conda-forge 的包可以把https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/加进去但不要加太多源源太多会拖慢包的解析速度。pip 的镜像源配置在~/.pip/pip.conf[global] index-url https://pypi.tuna.tsinghua.edu.cn/simple trusted-host pypi.tuna.tsinghua.edu.cn加trusted-host是因为清华源走的是 HTTPS 但证书链在旧机器上可能不被信任加上这行避免 SSL 报错。6.3 验证镜像是否生效conda create -n testenv python3.10 -y观察下载地址是否变成mirrors.tuna.tsinghua.edu.cn。如果还是repo.anaconda.com说明.condarc配置没有被正确读取优先检查文件路径是不是~/.condarc也就是/home/devuser/.condarc不要拿去和 root 的配置搞混。7. 创建虚拟环境并做核心验证7.1 conda 为什么值得学环境隔离装好 Miniconda 之后最常用的功能就是创建虚拟环境。虚拟环境相当于一个独立的 Python 沙盒你在这个环境里装的包不会污染其他环境即使把环境玩坏了删掉重建也不过是一条命令的事。这和项目间的依赖隔离需求一一对应项目 A 要 Django 3.2项目 B 要 Django 4.2各开一个环境互不干扰。7.2 常用命令速查以创建一个 Python 3.10 的环境为例conda create -n py310 python3.10 -y-n后面是环境名python3.10指定 Python 版本。装完激活conda activate py310激活后命令行前面会出现(py310)字样同时python --version输出 Python 3.10.x。验证当前 python 路径which python如果没有出现(py310)或者路径不对说明环境没激活成功见后面问题排查。我列出几个最高频命令作为参照需求命令创建环境conda create -n env_name python3.10 -y激活环境conda activate env_name退出环境conda deactivate查看环境列表conda env list删除环境conda remove -n env_name --all安装包conda install numpy或pip install numpy导出环境conda env export environment.yml从文件克隆环境conda env create -f environment.yml7.3 Jupyter Notebook 与内核注册搜索热词里很多人在问miniconda 安装后如何使用 jupyter notebook这里专门展开讲。Miniconda 默认不自带 Jupyter需要手动安装conda activate py310 conda install jupyter -y # 或者用 pippip install jupyter装好后直接运行jupyter notebook默认会监听 8888 端口本地运行它会自动打开浏览器。如果是在远程服务器上跑需要手动指定 IP 和端口jupyter notebook --ip0.0.0.0 --port8888 --no-browser然后本地浏览器访问http://服务器IP:8888输入 token 登录启动时终端会打印那个 token 字符串。这里有个常见困惑我在 conda 的 base 环境装了 jupyter然后切换到 py310 环境启动 jupyter 后却发现import numpy报错。原因在于 Jupyter 默认使用启动它的那个 Python 解释器如果不做任何配置所有 notebook 内核都会指向启动 Jupyter 的那个环境。解决办法是在每个目标环境中注册 ipykernelconda activate py310 pip install ipykernel python -m ipykernel install --user --name py310 --display-name Python (py310)之后启动 Jupyter新建 notebook 时就能在 Kernel 菜单里选到Python (py310)了。这个问题如果不提前知道排查起来很费劲我印象里至少帮三个同事解决过。7.4 pip 和 conda 的混用建议Miniconda 环境内同时有 conda 和 pip很多人纠结到底用哪个。我的经验是能 conda 装的优先 condaconda 没有的再用 pip。因为 conda 安装的包能识别底层依赖关系以后卸载环境时更干净pip 装在 conda 环境里的包conda 默认不知道它们的存在如果混用多了环境可能会变得不可控。但也不用矫枉过正——像一些纯 Python 包或 GitHub 上直接安装的包pip 反而更方便。8. 常见问题与排查技巧实操过程中大概率会遇到各种报错我把最常见的问题和对应排查方法整理成一张表方便你直接对照。现象可能原因排查/解决conda: command not foundPATH 未包含 conda 或 conda init 未执行执行source ~/.bashrc大概率是 init 时选了 no重新运行/home/devuser/miniconda3/bin/conda init bash手动 PATH 写法最好删掉Permission denied无法写环境安装时用了 root或环境安装到了系统目录检查安装目录所有者是否 devuser必要时sudo chown -R devuser:devuser /home/devuser/miniconda3新建用户无法执行 conda用户没有加载.bashrc或没有初始化文件su - devuser干净切换检查.bashrc是否存在且有 conda init 块conda 装包速度极慢未配置镜像源按上文加入清华源并conda clean -i清除缓存再试机器重启后 conda 命令消失用户登录 shell 不是 bash如 Ubuntu 默认 sh用usermod -s /bin/bash devuser改回 bash镜像源配置了但仍走默认源.condarc写入位置不对conda config --show-sources查看实际读取的配置路径通常在$HOME/.condarcconda activate不生效用了/bin/sh或者没有执行 conda init确认 shell 是 bash/zsh再执行一次 initpip 安装包时报 SSL 错误镜像站证书未被信任在 pip.conf 加trusted-host字段Jupyter Kernel 无法切换目标环境没装 ipykernel在目标环境中执行python -m ipykernel install --user --name env_name8.1 典型报错现场new user 无法运行 conda最典型的场景就是你按教程创建了 devuser用su devuser切过去敲conda却提示command not found。我第一次遇到时也懵了后来定位到三个叠加原因一是su devuser和su - devuser的区别前者不会重置环境变量而 conda 的初始化代码是在登录 shell 里加载的二是用户没有.bashrc骨架文件裸用户压根没执行任何配置文件三是安装时用错了身份conda 装到 root 目录下。解决步骤按照验权限、验文件、验配置三层来whoami # 确认是 devuser 而不是 root ls -la /home/devuser/ # 确认 .bashrc 是否存在 grep conda /home/devuser/.bashrc # 确认 conda init 块存在 cat /home/devuser/.bashrc | head -20如果.bashrc存在但没有 conda init 块直接执行/home/devuser/miniconda3/bin/conda init bash再source ~/.bashrc问题解决。8.2 一个隐蔽的坑系统启动脚本覆盖 PATH某些服务器 / 公司镜像会在/etc/profile.d/下放置自定义脚本其中可能粗暴地覆盖 PATH。这会导致你明明配好了 conda登录后 PATH 却被冲刷掉。排查方式echo $PATH which conda如果 conda 在/home/devuser/miniconda3/bin/conda但which conda找不到说明 PATH 被改动了。用grep -r PATH /etc/profile.d/逐一检查系统级脚本把冲突行删掉或者调整顺序。8.3 目录权限的大坑和修复另一个高发问题安装时疏漏造成 conda 目录权限不全。你在 root 下装完 Miniconda然后切到 devuser 去创建环境系统提示PermissionError。原因太直接了Miniconda 本体结构里所有目录 owner 都是 rootdevuser 没有写权限。修复方式sudo chown -R devuser:devuser /home/devuser/miniconda3有时候还可能出现家目录 owner 不匹配个人建议一次把家目录也 fixsudo chown -R devuser:devuser /home/devuser/这里必须提醒一句不要图省事把整个/home/devuser用chmod 777粗暴放开权限。这样做的后果是所有用户都能读写它的文件安全隐患极大尤其在生产服务器上这是大忌。9. 一些实操心得体会顺手分享几个我在多次搭环境后沉淀下来的实操体会对长期维护非常有用。第一把安装过程做成脚本。手动敲命令容易出错重复搭建时消耗大量时间。我后来把上面的流程做成了一个可复用的 shell 脚本参数就是用户名执行完自动创建用户、自动下载安装 Miniconda、自动配置镜像源。脚本的核心思想就是把所有命令封装起来再加一些判断逻辑比如目录存在就跳过。以下是我常用的精简版脚本骨架#!/bin/bash set -e USERNAME${1:-devuser} # 创建用户 id $USERNAME /dev/null || sudo useradd -m -s /bin/bash $USERNAME echo $USERNAME:InitialPass123 | sudo chpasswd sudo passwd -e $USERNAME # 切换到新用户执行安装 sudo -u $USERNAME bash EOF cd ~ wget -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda3 $HOME/miniconda3/bin/conda init bash source ~/.bashrc 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/free/ conda config --set show_channel_urls yes EOF echo Done. User$USERNAME can login and use conda now.注意这里Miniconda3-latest-Linux-x86_64.sh -b的-b是静默安装模式不会问 license 和 init 的问题配合-p指定路径后脚本化非常顺畅。个人手动装的时候可以交互式慢慢地看提示但自动化部署时一定用-b。第二数据目录和软件目录分离。我一般建议把用户数据比如 notebook 文件、数据集放在独立目录而非 conda 环境目录里。比如mkdir /home/devuser/workspace这样以后升级或重建环境不会把个人文件卷进去。这是一个小的目录规划习惯但能让你在环境出问题时保留住劳动成果。第三环境导出和恢复是一种好习惯。每次搭建好一个相对稳定的环境我都习惯:conda env export environment.yml甚至可以在常规备份里把.condarc和environment.yml一并纳入版本管理。这样即使整台机器重装也可以快速恢复开发环境不用每次重新摸索依赖。第四关于 是否要装 Anaconda 还是 Miniconda 的思考。很多人有这个纠结。我的建议是日常做开发、学深度学习Miniconda 比 Anaconda 合适得多。Anaconda 预装了几百个包看起来省事但很多你用不到白白占空间不说新环境启动速度还受影响。Miniconda 只带 conda、Python 和必需品需要什么装什么主动权在自己手里。需要跑数据分析和机器学习的时候一条conda install numpy pandas scikit-learn两三分钟就配齐了。如果你在学习中要跑机器学习和深度学习实验Miniconda PyTorch/TensorFlow 的组合是目前最舒服的路径之一。第五注意密码过期和账号安全这个细节。热词列表里有linux密码过期提醒通知这个关键词确实挺常被忽略的。默认情况下创建的账号密码跟 CentOS 7 上默认设置的PASS_MAX_DAYS有关通常 99999永不过期但公司服务器可能全局配置了策略新用户会被套用。如果你遇到新用户创建后没几天就要求改密码检查一下/etc/login.defs里的PASS_MAX_DAYS或者直接给我们新用户单独设置sudo chage -M 99999 devuser # 设为不过期反过来如果你要提醒用户定期改密码也可以用chage -M 90 -W 7 devuser策略化配置。这只是一种安全习惯的体现不一定需要去套任何现成体系。第六重装或卸载的干净方式。哪天你不想要这个用户了一条命令可以彻底清理sudo userdel -r devuser-r会连同家目录一起删除包括 Miniconda 和所有环境。但要注意被该用户占用的进程如果还在运行userdel会失败需要先pkill -u devuser清理进程。这条命令在生产环境前请加倍确认是否备份了数据。10. 结尾前的一个额外建议这整条流程跑通之后你其实拿到的是一个非常趁手的 Python 开发基座隔离用户、独立的 conda 环境、配置好的镜像源、随时可用的 Jupyter 内核。后续不管是继续装 TensorFlow、PyTorch还是部署一个 Django 服务都不会再被环境问题绊住手脚。我最后想留的一个小建议是装完之后花点时间自己从头到尾再走一遍流程但这次不看教程纯靠记忆和排查能力完成。你会在过程中遇到新的报错而这些报错的排查经验才是这次学习笔记之外真正值钱的东西。Linux 环境管理这部分能力就是靠这样一遍遍手动操作加排错喂出来的。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询