Python包管理工具Pip与Conda的常见使用

python的包管理工具一般是pipconda

pipconda是Python开发环境中广泛使用的两大包管理工具。
conda是Anaconda发行版的一部分,但也可以单独安装使用,适用于所有Python环境,不仅仅是Anaconda用户。

这个博客是平时的笔记的一次整合,至于为什么连这些都有笔记,那只能是:
前面忘了,中间忘了,后面也忘了

为了更好展现使用方法,就不分为pipconda两部分展示。
而是依照使用进行区分展示。


0. 获取帮助页面

对于任何命令行工具,查阅其帮助文档通常是快速熟悉和掌握其用法的有效途径。
pipconda可分别通过以下命令访问其帮助页面:

pip help
pip --help
# pip可以通过两种来获取帮助

conda --help
# conda只能--help

非常推荐在日常使用中去随时查看help文档


1. 基础操作

安装包

安装包的基本命令如下:

pip install <package_name>

conda install <package_name>

指定特定版本安装:

pip install numpy==1.21.5

conda install numpy=1.21.5
换源
  • pip
    更换pip的默认源以加速下载,如使用清华大学镜像:
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

使用-i的方法是临时性的,并不是永久的

  • conda
    conda换源和切换至特定通道安装:
conda install numpy -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main

conda install conda-pack -c conda-forge

:“源”(pip中的--index-url-i选项)与“通道”(conda中的-c--channel选项)尽管在功能上都是指代软件包的来源,但它们分别对应于pipconda各自独立的服务体系(PyPI与Anaconda Cloud)及其特有的命令行参数。

国内镜像源

同时,在指定源进行安装的时候,为了避免一些安全性问题,建议选择常规可信源进行安装。

一些常见的源
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云http://mirrors.aliyun.com/pypi/simple/
中科大https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣http://pypi.douban.com/simple/

更新

更新单个包:

pip install --upgrade <package_name>

conda update <package_name>

更新所有已安装包:

pip install --upgrade --all

conda update --all

卸载

pip uninstall <package_name>

conda remove <package_name>

查看

查看单一包的详情

pip show <package_name>

conda list <package_name>

查看所有已安装的包

pip list

conda list

2. requirements

依据requirements.txt安装

pip install -r requirements.txt
pip install --requirement requirements.txt

conda install --yes --file requirements.txt
conda install -y -f requirements.txt

生成requirements.txt

使用pip自带功能生成:

pip freeze > requirements.txt
# 自带的功能,会把所有包都生成出来

使用第三方工具pipreqs生成:(推荐)

pip install pipreqs

pipreqs . 
# 对当前路径下的文件进行requirements生成
pipreqs . --encoding=utf8
# 加上这个避免一些编码错误

freeze和pipreqs的差别

pip freeze 用于列出当前 Python 环境中所有已安装包及其版本
执行此命令时,它不分项目边界,一视同仁地捕捉环境中所有的软件包,无论这些包是否直接服务于当前项目。
也导致生成的 requirements.txt 文件可能包含大量非项目必需的依赖,提供的是全局环境快照,依赖列表过于宽泛。

pipreqs 是一款专门针对项目代码进行依赖分析的工具。
它通过静态解析项目目录下的源代码和相关文件(如 .py, .ipynb, .yaml 等),识别出项目实际引用的库。
基于这种精准分析,生成的 requirements.txt 文件仅包含项目实际使用的依赖,剔除了无关包。所以通常更推荐使用 pipreqs


3. conda环境

  • 创建
conda create -n New_env python=3.7
conda create --name New_env python=3.7
  • 重命名env
conda create --name conda-new --clone conda-old
# 通过克隆进行重命名
  • 查看环境
conda env list
conda info --envs
  • 激活与退出
conda activate <env_name>

conda deactivate
  • 删除环境
conda env remove --name <env_name>

环境迁移

  • Export环境配置进行迁移
# 导出环境配置
conda env export > enviroment.yml
# 依据环境配置创建环境
conda env create -f enviroment.yml
  • 打包环境进行迁移
conda install conda-pack -c conda-forge
# 从通道conda-forge安装conda-pack工具

conda pack -n <env_name> -o /path/to/<output_filename>.tar.gz

eg.

conda pack -n mask-rcnn -o /pack_envs/mask-rcnn.tar.gz
# 将环境存储到路径为<>的文件中
  • 导入打包好的环境
    将打包文件移动至目标路径,并解压。
    假设目标路径为$CondaPath/<env_name>,操作如下:
cd $CondaPath
mkdir <env_name>
cd <env_name>
tar -xzvf /path/to/<pack_filename>.tar.gz

激活并验证已导入的环境:

conda env list
conda activate <env_name>

注意$CondaPath代表conda环境目录,通常位于/root/anaconda/envs(或其他路径),具体位置可通过conda info命令查看。


更新说明

2024年4月20日

  • 补充了freeze和pipreqs的区别,说明为什么更推荐pipreqs。跳转
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值