Table of Contents

Pip

Python的包管理器

PyPI · The Python Package Index https://pypi.org/

pip是一个python包,用来管理python的包,python -m xxx就是执行名为xxx的python包的意思(具体请参见Python的__main__.py,实现这个文件可以让你「运行一个文件夹」,包就是一个文件夹,那么也就可以「运行一个包了」)


基础使用和参数

python -m pip install PyYAML -i https://pypi.douban.com/simple

# 查看安装的package (pandas)的信息
python -m pip show pandas

# 查看package (pandas)的可用版本
python -m pip index versions pandas

# 安装并指定版本
python -m pip install pandas==1.3.4

# 安装requirements.txt
python -m pip install -r requirements.txt

# 卸载
python -m pip uninstall pandas

# 列出所有已经安装的package
python -m pip list

包依赖关系

pipdeptree

可视化的方式查看已经安装的pip包之间的依赖关系

AI:

pipdeptree:
pipdeptree 是一个命令行工具,可以帮助你以树状图的形式查看一个 Python 环境中所有安装的包及其依赖关系。
安装命令:pip install pipdeptree
使用命令:pipdeptree 或 pipdeptree -g(生成图形化的输出,需要 Graphviz 支持)。

requirements.txt

列出需要的包,以及版本条件,可以使用pip一次性安装

安装PIP

首先,安装python3,默认不带pip3的情况应该是比较少的。以下的例子环境为:使用apt的Linux

如果没有pip3我们可以:

  1. 用apt安装python3-pip,这个包应该是没办法指定python的版本的,默认是为指令[python3]指向的python安装pip(比如你的python3指向python3.11,那么就是为python3.11安装pip),安装在全局环境下。如何修改python3具体指向的位置呢?可以使用update-alternatives(具体可以看Docker的笔记:https://github.com/GZhonghui/docker_samples/blob/master/01_setup_python_env/Dockerfile
  2. 也可以使用venv,我们在使用apt安装python3.x的时候,最好把python3.x-dev和python3.x-venv也一起安装了,这两个包可以指定版本,安装好后创建虚拟环境,虚拟环境里面一定有pip。为什么一定有pip呢?因为python自带一个叫作ensurepip的包,用于引导安装pip(python -m ensurepip),在创建venv的时候这个包就会自动执行确保pip是安装的。那么我们为什么不在venv外部使用这个ensurepip呢?因为在某些OS中,全局的py环境是禁止使用ensurepip的(比如Debian和Ubuntu)