环境配置集合
docker 安装
-
docker 镜像导入导出
# 导出镜像
docker save -o my_image.tar my_image:tag
# 导入镜像
docker load -i my_image.tar
conda 与 pip
创建conda 环境后,使用 conda install
和 pip install
安装 Python 包的区别
核心区别
对比项 | conda install |
pip install |
---|---|---|
包来源 | conda-forge 、anaconda 官方仓库 |
PyPI(Python Package Index) |
依赖管理 | 使用 conda 的依赖解析器(更严格,避免冲突) |
使用 pip 的依赖解析器(可能安装不兼容版本) |
安装方式 | 优先安装预编译的二进制包(.whl 或 .tar.gz ) |
安装源码包(可能需要编译) |
适用包类型 | Python 包 + 非 Python 依赖(如 libblas 、gcc ) |
仅 Python 包 |
环境隔离 | 直接集成在 conda 环境中 |
依赖 conda 环境,但包管理独立 |
冲突风险 | 较低(conda 的依赖解析更严格) |
较高(pip 可能安装不兼容版本) |
详细解释
1. 包来源不同
conda install
- 从
conda-forge
或anaconda
官方仓库安装包。 - 这些包通常是 预编译的二进制文件(
.whl
或.tar.gz
),安装更快,适合 Windows 用户(避免编译问题)。 -
例如:
conda install numpy
会从conda-forge
安装预编译的 NumPy。 -
pip install
- 从 PyPI(Python Package Index)安装包。
- 这些包通常是 源码包(
.whl
或.tar.gz
),在 Linux/macOS 上通常直接安装,但在 Windows 上可能需要额外工具(如Microsoft C++ Build Tools
)。 - 例如:
pip install numpy
会从 PyPI 安装 NumPy(可能是源码或预编译版本)。
2. 依赖管理不同
conda install
- 使用
conda
自己的依赖解析器,会检查所有已安装包的依赖关系,避免冲突。 -
例如:如果你已经安装了
numpy=1.21
,conda
会确保新安装的pandas
兼容numpy=1.21
。 -
pip install
- 使用
pip
的依赖解析器,可能安装不兼容的版本(尤其是当conda
已经安装了某些包时)。 - 例如:如果
conda
安装了numpy=1.21
,但pip
安装的pandas
需要numpy=1.22
,可能会导致运行时错误。
3. 适用包类型不同
conda install
- 可以安装 Python 包 + 非 Python 依赖(如
libblas
、gcc
)。 -
例如:
conda install scipy
会同时安装scipy
和它依赖的libblas
。 -
pip install
- 仅安装 Python 包,不管理非 Python 依赖。
- 例如:
pip install scipy
只会安装scipy
,但不会安装libblas
(如果缺少,可能会报错)。
一、Conda 的实用技巧
conda 下载与安装
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
1. 配置国内镜像源(加速下载)
-
清华镜像源(推荐):
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 --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ conda config --set show_channel_urls yes
-
中科大镜像源:
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
- 验证镜像源:
conda config --show channels
- 恢复默认源:
conda config --remove-key channels
2. 创建独立环境(避免依赖冲突)
conda create -n my_env python=3.8 # 指定Python版本
conda activate my_env # 激活环境
conda deactivate # 退出环境
- 导出/导入环境(方便迁移):
conda env export > environment.yml # 导出当前环境配置
conda env create -f environment.yml # 从文件创建环境
3. 清理缓存(释放磁盘空间)
conda clean --all # 清理所有缓存(包、索引、临时文件)
4. 解决 Conda 安装慢的问题
- 使用
mamba
替代conda
(更快的依赖解析器):conda install -n base -c conda-forge mamba mamba create -n my_env python=3.8 # 比 conda 更快
5. Conda 与 pip 混合使用
- 在 Conda 环境中优先用
conda install
,再补pip install
(避免依赖冲突)。 - 注意:不要在 Conda 环境中直接
pip install
后又用conda install
覆盖,可能导致环境混乱。
二、pip 的实用技巧
1. 配置国内镜像源(加速下载)
- 临时使用:
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
- 永久配置(修改
pip.conf
或pip.ini
):- Linux/macOS:
~/.pip/pip.conf
- Windows:
%APPDATA%\pip\pip.ini
ini [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple trusted-host = pypi.tuna.tsinghua.edu.cn
- Linux/macOS:
- 其他镜像源:
- 阿里云:
https://mirrors.aliyun.com/pypi/simple/
- 豆瓣:
https://pypi.doubanio.com/simple/
- 阿里云:
2. 离线安装包
- 下载包及其依赖:
pip download numpy -d ./packages # 下载到指定目录
- 离线安装:
pip install --no-index --find-links=./packages numpy
3. 虚拟环境管理
- 使用
venv
(Python 内置)或virtualenv
:python -m venv my_env # 创建虚拟环境 source my_env/bin/activate # 激活(Linux/macOS) my_env\Scripts\activate # 激活(Windows)
- 推荐工具:
pipenv
或poetry
(更高级的依赖管理)。
4. 解决 pip 安装慢的问题
- 使用
--index-url
或--extra-index-url
指定镜像源。 - 多源加速(如清华+阿里云):
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple -i https://mirrors.aliyun.com/pypi/simple/
5. 升级 pip 自身
python -m pip install --upgrade pip
6. 查看已安装包的依赖关系
pip show <package_name> # 查看包信息
pip list --format=freeze # 列出所有包及版本
三、Conda 与 pip 的协作技巧
- 优先使用 Conda:
Conda 的包管理更全面(尤其是科学计算库如 NumPy、SciPy),且能处理非 Python 依赖(如 C 库)。 - 必要时用 pip:
如果 Conda 没有某个包(如某些 Web 框架),再用pip install
。 - 避免混用冲突:
- 不要在 Conda 环境中直接
pip install
后又用conda install
覆盖同一包。 - 推荐先
conda install
,再pip install
补充缺失的包。
四、其他实用技巧
- 查看环境中的包:
- Conda:
conda list
- pip:
pip list
- 卸载包:
- Conda:
conda remove <package_name>
- pip:
pip uninstall <package_name>
- 检查环境冲突:
- 使用
conda list
或pip list
对比不同环境的包版本。 - 备份环境:
- 导出
environment.yml
或requirements.txt
(pip)。
五、常见问题解决
- Conda 安装失败:
- 检查镜像源是否配置正确。
- 尝试
conda clean --all
后重试。 - pip 安装失败:
- 检查网络或镜像源是否可用。
- 尝试
--verbose
查看详细错误信息。 - 环境混乱:
- 新建干净环境,重新安装依赖。
总结
- 国内用户必做:配置 Conda/pip 的国内镜像源。
- 环境管理:优先用 Conda 创建独立环境,必要时用 pip 补充。
- 效率工具:
mamba
替代conda
,venv
或pipenv
管理虚拟环境。 - 协作规范:导出环境配置文件(
environment.yml
或requirements.txt
)便于复现。