pip 介绍
pip 是 Python 标准库之外的一个第三方包管理工具,用于安装、升级和管理 Python 包也可以方便的管理Python包的依赖关系。从Python Package Index(PyPI) 下载和安装各种Python包。
pip安装
- 一般情况下,pip是随着Python一起安装了,可使用
pip --version检查 pip 是否已经安装。 - 如果发现pip不可用或者损坏,则直接执行如下命令
python -m ensurepip --upgrade
pip 常用命令
pip install: 安装Python包pip install package_name[dependencies]:安装包以及其依赖的其他包pip install /path/to/package:安装一个本地的Python包pip install -r requirements.txt:从requirements.txt 文件中安装包pip install package_name==version_number:安装指定版本的包pip install --upgrade package_name:升级安装的包pip install --user package_name:安装Python包到用户的本地目录pip install --no-dependencies package_name:安装Python包但是忽略其他依赖项pip install --find-links=URL package_name:从指定的URL中安装Python包pip uninstall package_name: 删除包pip list: 查看所有的包
pip install panpda
# 安装 my_pkg 并且安装其对应的[numpy,scipy]依赖项
pip install my_pkg[numpy,scipy]
- 将指定的Python包或者库打包成wheel文件:
pip wheel package_name
pip wheel numpy
# 注意:wheel 文件Python的分布式文件格式,替代Python传统的egg文件
-
pip cache purge:清理缓存 -
pip list: 列出当前Python环境中已经安装的所有包或者库列表 -
pip show package_name:显示包的详细信息,包括名称、版本号、安装路径等。 -
pip search package_name:在PyPI(Python Package Index)上搜索指定的包或者库,并显示相关信息。 -
pip freeze:显示当前Python环境中已安装的所有包名称和版本号
venv
系统安装的Python3只有一个版本:3.x。所有第三方的包都会被pip安装到Python3的site-packages目录下。当多个应用共享同一 Python 环境时,可能会出现库版本冲突。
venv 是 Python 提供的一个标准库,用于创建虚拟环境。虚拟环境是一种隔离的 Python 运行环境,可以让你为每个项目创建独立的依赖库,而不会干扰全局 Python 环境。它帮助避免不同项目之间的依赖冲突,并且使得项目更加易于管理。
-
创建虚拟环境:
python -m venv venv_name- venv_name 为虚拟环境选择的名称,通常用 venv 或项目名。这里会创建一个名为 venv_name 的文件夹,里面包含一个独立的 Python 解释器和一组标准的库。
-
激活虚拟环境
# Windows: venv_name\Scripts\activate # macOS 和 Linux: source venv_name/bin/activate当虚拟环境激活后,你会看到命令行提示符的前面有虚拟环境的名字,如 (venv_name),这表示你当前正在使用该虚拟环境。
-
在虚拟环境中安装依赖:激活虚拟环境后,就可使用 pip 来安装所需的 依赖包。所有的依赖都会被安装到虚拟环境的 lib 目录中,而不是全局环境。
-
查看已安装的包:在虚拟环境中,你可以使用
pip list来查看已安装的所有包。 -
退出虚拟环境:命令:
deactivate执行命令后则会返回到全局 Python 环境。 -
删除虚拟环境
rm -r venv_name # Linux/macOS
rmdir /S /Q venv_name # Windows
- 在虚拟环境中,常常需要记录项目的依赖,以便其他开发者可以复现相同的环境。可以通过
pip freeze将当前环境中的所有依赖写入到requirements.txt文件中:
pip freeze > requirements.txt
要安装这些依赖,可以通过以下命令:
pip install -r requirements.txt
- 使用
venv创建虚拟环境,可以让你的项目拥有独立的 Python 环境,避免依赖冲突。 - 创建虚拟环境:
python -m venv venv_name - 激活虚拟环境:
source venv_name/bin/activate(macOS/Linux)或venv_name\Scripts\activate(Windows) - 安装包:
pip install package_name - 退出虚拟环境:
deactivate - 记录和恢复依赖:
pip freeze > requirements.txt和pip install -r requirements.txt
Conda、MiniConda、Anaconda
开发中需要用到很多第三方库,比如Pillow、MySQL驱动程序、Web框架Flask、科学计算Numpy等。pip安装不仅费时费力,还需考虑兼容性。
Conda = 包和环境管理的工具
MINICONDA = conda + python + base packages
ANACONDA = MINICONDA + 150 high quality packages
-
Anaconda一个基于Python的数据处理和科学计算平台,它内置了许多第三方库。 -
Miniconda更加的轻量,默认只包含了 conda,Python和一些它们所以依赖的包。
常用的Python虚拟环境管理工具有:
- Virtualenv
- Conda
- pipenv
- venv
Anaconda 安装
-
官网下载:www.anaconda.com/download 下载后可直接安装
-
安装完 Anaconda 后
AnacondaAnaconda会把系统Path中的python指向自己自带的Python,并且,Anaconda安装的第三方模块会安装在Anaconda自己的路径下,不影响系统已安装的Python目录。
Conda 的常用命令
conda –help # 查看帮助
conda info # 查看 conda 信息
conda - version # 查看 conda 版本
conda update conda # 更新Conda(慎用)
conda clean –all # 清理不再需要的包
conda <指令> - help # 查看某一个指令的详细帮助
conda config - show #查看 conda 的环境配置
conda clean -p # 清理没有用,没有安装的包
conda clean -t # 清理 tarball
conda clean - all # 清理所有包和 conda 的缓存文件
Conda 的 channel
Channel 是 Conda 用来查找和下载软件包的源(仓库)。可以从通道中获取需要的软件包。
- 默认通道:Conda自带的官方通道,由Anaconda维护,包含了常用的数据科学和机器学习包。提供的包经过测试和优化,稳定且值得信赖。
- Conda-Forge:一个社区驱动的通道,由社区维护,更新速度快,拥有数量庞大的软件包和活跃的维护者社区。
- Bioconda:专为生物信息学和生物数据分析设计的通道。包含很多用于生物数据处理和分析的工具。
如果需要托管私有包,可以创建自己的Conda通道。可以通过简单的HTTP服务器(如NGINX或Apache)托管。
- 查看已经配置的仓库:
conda config - show channels - 添加新的通道:
conda config - add channels conda-forge - 将新通道添加到优先位置:
conda config --add channels <channel_name> --prepend - 将新通道添加到最后:
conda config --add channels <channel_name> --append - 严格按照通道顺序选择包:
conda config - set channel_priority strict - 删除通道:
conda config --remove channels <channel_name> - 临时使用通道:
conda install package-name -c conda-forge
通道优先级 Conda默认会根据通道列表的顺序依次查找包。以下命令启用或禁用通道优先级:
conda config - set channel_priority true # 启用优先级
conda config - set channel_priority false # 禁用优先级
Conda 设置镜像
设置国内镜像,提高Conda包的下载速度
通过命令添加镜像通道
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/r/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
接编辑 conda 配置文件
conda 的配置文件通常存储在 ~/.condarc(Linux/macOS)。可以手动编辑这个文件,向 channels 部分添加新的 channel。
.condarc 文件内容:
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
为了确保使用的是最新的镜像源,可以清理 Conda 缓存:conda clean -i
Anaconda 环境管理
Anaconda 使用 conda 来管理不同的 Python 环境。安装 Anaconda 时,它会创建一个名为 base 的默认环境,并在你打开终端时自动激活这个环境。
-
命令行中显示
(base) ➜是因为 Anaconda 默认启用了 base 环境。(base)是 Anaconda 环境的名称,表示你当前正在使用 base 环境。- 如果不想每次打开终端进入
(base)环境,执行conda config --set auto_activate_base false。 - 手动激活
base环境:conda activate base
- 如果不想每次打开终端进入
通过界面也可以管理虚拟环境
通过命令管理虚拟环境
- 创建虚拟环境:
conda create -n env_name python=version package_names - 查看虚拟环境列表:
conda env list - 激活(切换)虚拟环境:
conda activate env_name - 退出当前虚拟环境:
conda deactivate - 删除虚拟环境:
conda remove -n env_name --all - 克隆环境:
conda create - name new_evn_name - clone old_env_name
注意:
- 如果要指定conda环境的路径,需要设置envs_dirs:
conda config --add envs_dirs D:/python/envs - 创建环境时一定要指定python环境
Anaconda 包管理
激活环境后,你就可以使用 conda 和 pip 在当前环境下安装你所需要的包。conda环境中,不建议使用 pip 。
pip 和 conda对比
-
pip:Python官方推荐,用于安装
Python Package Index(PyPI)托管的包。可安装wheels或源码格式的包 -
conda:是一个跨平台的包和运行环境管理工具,其安装的包通常来自于
Anaconda repository和Anaconda Cloud。和 pip 安装的包不同的是,Conda包是二进制格式的,因此无需预先安装编译器。除此之外,Conda更强大的地方在于其不仅可以安装Python包,还可以安装C(C++)、R语言包以及其他语言编写的包等。conda ≈ pip(python包管理) + virtualenv(虚拟环境) + 非python依赖包管理
Anaconda 包管理操作
- 安装Python包:
conda install numpy - 安装指定版本的Python包:
conda install numpy=1.18 - 更新某个包到最新版本:
conda update numpy - 更新所有包到最新版本(慎用):
conda update --all - 卸载包:
conda remove numpy - 列出环境中所有的包:
conda list - 查看环境中某个包的信息:
conda list numpy - 搜索指定包:
conda search numpy
Conda 导入导出环境
将当前环境导入到yml文件中
conda env export > environment.yml
从yml文件中创建一个环境
conda env create -f environment.yml
Pycharm中使用Anaconda
Anaconda 用来管理项目环境及其依赖包,非常简单和高效;配合 Pycharm 可以任意切换不同的环境
-
创建项目,通过conda新建虚拟环境
也可以选择已存在的环境
-
查看项目所使用的环境
-
创建项目时,环境 Name 的值为 PythonProject
-
创建好项目后就可在终端 Terminal 进行虚拟环境和包的操作管理
-
已存在的项目,新增虚拟环境
-
已存在的项目,切换虚拟环境
Mamba
Mamba 介绍
Mamba 是一个快速、可靠的包管理工具,作为 conda 的替代品,旨在提供更快的安装和更新体验。Mamba 是基于 conda 的,但使用了不同的实现,特别是在解决依赖关系和安装包的速度上进行了优化。
Mamba 的特点
- 速度更快:Mamba 通过使用 C++ 实现的核心,比起 conda,在包解析和环境创建方面具有显著的性能优势。
- 兼容性:Mamba 与 conda 完全兼容,可以直接替代 conda 命令,用户可以无缝地使用 Mamba 来代替 conda 执行大部分操作。
- 简化的依赖解析:Mamba 使用不同的依赖解析算法,使得处理复杂依赖关系时更加高效,特别是在安装大量包时。
- 并行下载:Mamba 支持并行下载包,这使得安装速度比 conda 更快。
- 高效的依赖解析:Mamba 使用优化的依赖解析算法,能够更快速地处理复杂的依赖关系和环境冲突。
安装 Mamba
可以通过 conda 安装 Mamba。以下是安装 Mamba 的步骤:
conda install mamba -c conda-forge
Mamba 使用
mamba 的命令几乎与 conda 完全相同
- 创建新环境:
mamba create -n myenv python=3.8 - 激活环境(激活命令同 conda):
conda activate myenv - 安装包:
mamba install numpy - 更新包:
mamba update numpy - 删除包:
mamba remove numpy - 列出环境:
mamba env list - 列出已安装的包:
mamba list