
Docker 快速配置深度学习环境 + 基础命令 + 常见报错
从零搭建深度学习 Docker 环境,涵盖镜像拉取、容器运行、GPU 支持配置、基础命令速查及常见报错(权限、网络超时、磁盘不足)解决方案,助你快速上手容器化 AI 开发。
阅读文章ZHY's Blog
A UNIVERSE OF IDEAS · BY ZHANG HAOYI
让好奇心 点亮知识宇宙
在代码、模型与思想之间自由漫游。这里持续记录人工智能、机器学习、软件工程与成长实践,让每次阅读都成为一次新的发现。
ARTICLE NOTE
创建新环境
conda create -n env_name python=3.10:创建名为env_name、Python版本为3.10的环境。conda create -n env_name python=3.10 -c conda-forge:从conda-forge频道创建环境(AI包更全)。激活环境
conda activate env_name:激活env_name环境。
退出环境
conda deactivate:退出当前激活的环境。
列出所有环境
conda env list或conda info --envs:显示所有可用环境。
删除环境
conda remove -n env_name --all:删除名为env_name的环境。
复制环境
conda create -n new_env --clone old_env:克隆一个现有环境。
导出环境
conda env export > environment.yml:导出包含确切版本和来源的完整环境(跨平台性较差)。conda env export --from-history > environment.yml:仅导出你明确指定的包(跨平台性更好)。从文件创建环境
conda env create -f environment.yml:根据 environment.yml 创建新环境。
安装包
conda install package_name:在当前环境中安装package_name。conda install numpy pandas matplotlib:一次性安装多个包。更新包
conda update package_name:将package_name更新到最新版本。
移除包
conda remove package_name:卸载package_name。
列出已安装包
conda list:列出当前环境中已安装的包。
搜索包
conda search package_name:搜索可用的包。
清理Conda
conda clean --all:清理缓存(下载的包缓存、索引等),释放磁盘空间。
更新Conda
conda update conda:更新conda本身。conda update --all:更新当前环境中所有包(可能引起依赖冲突,需谨慎)。
uv提供了一个与pip完全兼容的接口,可以作为pip的“即插即用”替代品,速度提升 10-100 倍 。以下所有pip命令都可用uv pip替换,以获得性能提升。
安装包
pip install package_name:安装package_name。uv pip install package_name:使用 uv 安装,速度更快。从 requirements 文件安装
pip install -r requirements.txt:根据requirements.txt文件安装包。uv pip install -r requirements.txt:uv 的等价命令。从 Git 仓库安装
pip install git+https://github.com/user/repo.git:直接从 Git 仓库安装(常用于安装未发布的库或特定分支)。
可编辑模式安装
pip install -e .:在当前目录下以“可编辑”模式安装项目。对正在开发的包非常有用,修改源码后无需重新安装即可生效。
升级包
pip install --upgrade package_name:升级package_name到最新版本。
卸载包
pip uninstall package_name:卸载package_name。
列出已安装包
pip list:列出已安装的包。uv pip list:uv 的等价命令。查看可用更新
pip list --outdated:查看有哪些包有更新版本。
显示包信息
pip show package_name:显示package_name的详细信息(版本、依赖、安装路径等)。
冻结当前环境的包
pip freeze > requirements.txt:将当前环境中所有通过 pip 安装的包及其版本输出到requirements.txt。uv pip freeze > requirements.txt:uv 的等价命令。
uv是一个用 Rust 编写的极速 Python 包和项目管理器,旨在替代pip、pip-tools、pipx、poetry、pyenv、virtualenv等工具 。它提供了一个统一的命令行界面来完成所有 Python 项目相关的任务。
1# 项目结构2# ├── .venv/ # 虚拟环境(自动创建)3# ├── pyproject.toml # 项目配置4# ├── uv.lock # 依赖锁定文件5# └── main.py # 入口文件.venv/ - 虚拟环境目录,存放项目独立的 Python 解释器和已安装的包
uv venv 重新创建),添加到 .gitignore,不需要提交到 gitpyproject.toml - 项目配置文件(核心),定义项目元数据、依赖、构建配置等
setup.py、requirements.txt、setup.cfg 等,由 uv 维护,但可以手动编辑1[project]2# 项目基本信息3name = "my--project"4version = "0.1.0"5description = "Description"6authors = [7 {name = "Your Name", email = "you@example.com"}8]9requires-python = ">=3.8"10dependencies = [11 "torch>=2.0.0",12 "numpy>=1.24.0",13 "pandas>=2.0.0",14 "transformers>=4.30.0",15]16
17[project.optional-dependencies]18# 可选依赖组19dev = [20 "pytest>=7.0.0",21 "black>=23.0.0",22 "jupyter>=1.0.0",23]24gpu = [25 "cudatoolkit>=11.7",26]27
28[build-system]29requires = ["hatchling"]30build-backend = "hatchling.build"31
32[tool.ruff]33# 代码检查工具配置(可选)34line-length = 8835
36[tool.black]37# 代码格式化工具配置(可选)38line-length = 88uv.lock - 依赖锁定文件,锁定所有依赖的精确版本和哈希值
requirements.txt 更可靠初始化新项目
uv init project_name:创建一个新的 Python 项目,生成 pyproject.toml、README.md、.gitignore 等文件 。cd project_name:进入项目目录。创建虚拟环境
uv venv:在当前目录创建虚拟环境 (默认为 .venv)。uv 会自动管理它 。uv venv --python 3.11:使用指定 Python 版本创建虚拟环境 。激活/退出虚拟环境
1# 激活 (macOS/Linux)2source .venv/bin/activate3# 激活 (Windows)4.venv\Scripts\activate5# 退出6deactivate添加依赖
uv add requests:添加 requests 到项目依赖,并更新 pyproject.toml 和 uv.lock 。uv add 'numpy>=1.20,<2.0':添加指定版本的依赖。uv add pytest --dev:将 pytest 添加为开发依赖 。移除依赖
uv remove requests:从项目中移除 requests 。
同步依赖
uv sync:根据 pyproject.toml 和 uv.lock 文件,安装或更新项目的所有依赖,确保环境完全一致 。uv sync --locked:仅当 uv.lock 文件未更改时才同步,用于 CI 环境确保可重复性 。生成锁定文件
uv lock:生成或更新 uv.lock 文件,精确锁定所有依赖的版本 。uv lock --upgrade-package requests:仅升级 requests 并更新锁定文件 。运行项目脚本
uv run main.py:在项目的虚拟环境中运行 main.py(无需手动激活环境)。uv run ruff check:在项目环境中运行已安装的工具 。安装指定Python版本
uv python install 3.12 3.11:安装 Python 3.12 和 3.11 。
列出可用/已安装版本
uv python list:列出所有可用的或已安装的 Python 版本 。
固定项目Python版本
uv python pin 3.11:将当前项目使用的 Python 版本固定为 3.11 。
查找当前Python
uv python find:显示当前使用的 Python 解释器路径 。
运行一次性工具 (无需安装)
uvx ruff check .:uvx 是 uv tool run 的别名,在一个临时隔离环境中运行 ruff,用完即弃 。
安装全局工具
uv tool install ruff:将 ruff 安装为全局可用的工具(类似于 pipx)。uv tool run ruff check .:运行已安装的全局工具。官方文档——Pro Git
查看仓库状态
git status:查看当前仓库状态,了解未提交的更改和未跟踪的文件。
查看远程更新
git fetch:从远程仓库获取更新,但不合并到本地。
git diff origin/main查看与远程主分支的差异。拉取更新
git pull:获取远程仓库的更新并合并到当前分支(通常是git fetch + git merge)。git pull --rebase:获取远程更新,然后用当前分支的提交在远程分支之上“重演”,保持提交历史线性整洁。克隆仓库
git clone https://github.com/user/repo.git:将远程仓库克隆到本地。git clone --depth 1 https://github.com/user/repo.git:浅克隆,只下载最新的提交历史,对于大型项目(如某些AI模型库)可以大大加快速度。添加更改
git add file:将file的更改添加到暂存区。git add .:将当前目录下的所有更改(包括新文件和修改)添加到暂存区。git add -u:仅将已跟踪文件的更改添加到暂存区。提交更改
git commit -m "commit message":提交暂存区的更改并添加提交信息。git commit -a -m "commit message":跳过git add,直接提交所有已跟踪文件的更改。查看差异
git diff:查看工作目录和暂存区之间的差异。git diff --staged:查看已暂存的更改与上次提交之间的差异。git diff HEAD..origin/main:查看本地分支和远程 main 分支之间的差异(先执行 git fetch origin)。撤销更改
git restore file:**【新方式】**丢弃工作目录中对file的修改(替代git checkout -- file)。git restore --staged file:**【新方式】**将文件从暂存区移回工作目录(取消暂存,替代git reset HEAD file)。git commit --amend -m "new message":修改最近一次提交的提交信息或包含新的更改。git reset --hard HEAD~1:彻底删除最近一次提交,回到之前的状态(慎用,不可逆)。推送更改
git push origin branch_name:将本地分支推送到远程仓库。git push -u origin branch_name:首次推送本地新分支到远程,并建立关联关系,后续可直接用git push。查看提交日志
git log:查看详细的提交历史记录。git log --oneline --graph --all -n 5:以单行、图形化方式查看所有分支的最近5次提交,非常直观。分支管理
git branch:列出本地所有分支。git branch -a:列出所有本地和远程分支。git switch -c new_branch:**【新方式】**创建并切换到new_branch分支(比checkout -b语义更清晰)。git switch new_branch:**【新方式】**切换到已存在的new_branch分支。git merge branch_name:将branch_name合并到当前分支。git branch -d branch_name:删除本地分支。git push origin --delete branch_name:删除远程分支。储藏更改
git stash:暂时保存当前未提交的更改,使工作目录变得干净。git stash pop:重新应用最近一次储藏的更改,并从储藏列表中删除。git stash apply:重新应用储藏的更改,但不从列表中删除。git stash list:查看所有储藏记录。设置全局用户名和邮箱
git config --global user.name "Your Name":设置用户名。git config --global user.email "you@example.com":设置邮箱。设置默认分支名
git config --global init.defaultBranch main:将新仓库的默认分支名设置为main。
查看配置信息
git config --list:列出所有Git配置。
按顺序完成这组文章,循序渐进地掌握主题
发现错误、内容过时或有改进想法?欢迎告诉我
根据本文分类与标签,为你推荐可能感兴趣的内容

从零搭建深度学习 Docker 环境,涵盖镜像拉取、容器运行、GPU 支持配置、基础命令速查及常见报错(权限、网络超时、磁盘不足)解决方案,助你快速上手容器化 AI 开发。
阅读文章
全面梳理命令行常用操作,涵盖导航、文件管理、权限设置、进程控制、网络工具及 APT 包管理(更新、安装、清理),助你高效驾驭 Linux 终端环境。
阅读文章
系统梳理策略梯度、优势函数、重要性采样与KL散度惩罚的核心概念,串联从VPG到PPO的技术演进逻辑,并探讨On-Policy与Off-Policy的权衡及数据漂移问题。
阅读文章请使用微信扫描二维码分享
当前文章会保持在原页面