[Python] 包管理器Pip

  • python的包管理器pip其实一直在用,但一直没有总结一下。过了许久后,再来摸,又会生疏。索性,那就总结一下吧,以便对此工具,常用常翻常新。

概述:Python包管理器 Pip

  • pipPython的包管理工具,用于安装和管理Python包。‌

pip允许用户从Python包索引(PyPI)下载和安装软件包,确保项目所需的依赖项正确安装。
因此,掌握pip的使用对于Python开发至关重要。

PIP的安装与卸载

检查是否已安装 pip

在使用pip之前,首先需要检查你的系统中是否已经安装了pip。打开终端或命令提示符,输入以下命令:

pip --version

如果已安装,你会看到类似于以下的输出:

(base) C:\Users\xxx>pip --version
pip 24.3.1 from D:\Program\Miniforge3\Lib\site-packages\pip (python 3.12)

安装Pip

  • 如果未安装,可以通过以下步骤进行安装:

Windows: 下载 get-pip.py,然后在命令提示符中运行:

【补充/可忽略】 tar 包下载 url : https://pypi.org/project/pip/#history

python get-pip.py

Linux/Mac: 使用以下命令:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py

PIP的使用

基本使用

  • 安装包‌:
pip install {packageName}

eg : pip install requests

  • 查看已安装的包‌:

可以列出当前环境中已安装的所有包及其版本

pip list

  • 查看包信息

要查看某个包的详细信息,可以使用pip show命令:

pip show {packageName}

例如

(base) C:\Users\xxx>pip show requests
Name: requests
Version: 2.32.3
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache-2.0
Location: D:\Program\Miniforge3\Lib\site-packages
Requires: certifi, charset_normalizer, idna, urllib3
Required-by: conda, conda_package_streaming, langchain, langchain-community, langsmith, requests-toolbelt
  • 查找包 【已废止/PyPI不建议使用】

如果你不知道要安装哪个包,可以使用pip search命令来查找包:

pip search {keyword}

例如:查找与requests相关的包:

pip search requests

(base) C:\Users\xxx>pip search requests
ERROR: XMLRPC request failed [code: -32500]
RuntimeError: PyPI no longer supports 'pip search' (or XML-RPC search). Please use https://pypi.org/search (via a browser) instead. See https://warehouse.pypa.io/api-reference/xml-rpc.html#deprecated-methods for more information.

+‌ 卸载包‌:

可以卸载不再需要的包。

pip uninstall {packageName}

例如,卸载requests库可以使用命令pip uninstall requests

执行日志
(base) D:\Workspace\xxx\MindSearch> pip show pydantic
Name: pydantic
Version: 2.6.4
Summary: Data validation using Python type hints
Home-page: https://github.com/pydantic/pydantic
Author:
Author-email: Samuel Colvin <s@muelcolvin.com>, Eric Jolibois <em.jolibois@gmail.com>, Hasan Ramezani <hasan.r67@gmail.com>, Adrian Garcia Badaracco <1755071+adriangb@users.noreply.github.com>, Terrence Dorsey <terry@pydantic.dev>, David Montague <david@pydantic.dev>, Serge Matveenko <lig@countzero.co>, Marcelo Trylesinski <marcelotryle@gmail.com>, Sydney Runkle <sydneymarierunkle@gmail.com>, David Hewitt <mail@davidhewitt.io>
License:
Location: C:\Users\xxx\AppData\Roaming\Python\Python312\site-packages
Requires: annotated-types, pydantic-core, typing-extensions
Required-by: fastapi, gradio, lagent, langchain, langchain-core, langsmith, pydantic-settings

(base) D:\Workspace\xxx\MindSearch> pip uninstall pydantic
Found existing installation: pydantic 2.6.4
Uninstalling pydantic-2.6.4:
  Would remove:
    c:\users\xxx\appdata\roaming\python\python312\site-packages\pydantic-2.6.4.dist-info\*
    c:\users\xxx\appdata\roaming\python\python312\site-packages\pydantic\*
Proceed (Y/n)? Y
  Successfully uninstalled pydantic-2.6.4
  • 更新包‌:

可以更新已安装的包到最新版本

pip install --upgrade {packageName}
  • 查看帮助信息‌

可以查看pip的所有可用命令和用法说明

pip --help

PIP 常见问题

Q: 配置、使用镜像源‌

  • 为了加快下载速度,可以使用国内的镜像源。

例如,使用清华大学的镜像源可以通过命令pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name来实现。

  • -i 等效于 --index-url
  • 查看配置的镜像源
# 命令1
python -m pip config list

# 命令2
pip config list
  • 临时更换

这种方法仅在当前终端会话有效,关闭窗口后将恢复到默认源。
在执行pip install命令时,只需添加 -i 参数并指定镜像地址

# 清华大学镜像源
pip install package_name -i https://pypi.tuna.tsinghua.edu.cn/simple

# 阿里云源 【推荐】
pip install markdown -i https://mirrors.aliyun.com/pypi/simple/

# 腾讯云源
pip install markdown -i https://mirrors.cloud.tencent.com/pypi/simple/

# 豆瓣源
pip install markdown -i http://pypi.douban.com/simple/
  • 永久更换
# 查看配置
python -m pip config list

# 为了更便捷地操作,推荐采用永久设置的方式。
# 通过`pip config`命令,我们可以更改全局源地址:
# 1、更换为清华源
> python -m pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
Writing to C:\Users\xxx\AppData\Roaming\pip\pip.ini

> python -m pip config list
global.index-url='https://pypi.tuna.tsinghua.edu.cn/simple'

# 2、更换为阿里源 【推荐】
python -m pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
 
# 3、更换腾讯云源
python -m pip config set global.index-url https://mirrors.cloud.tencent.com/pypi/simple/
 
# 4、更换为豆瓣源
python -m pip config set global.index-url http://pypi.douban.com/simple/
 
# 要恢复默认源,只需运行
pip config unset global.index-url

或按如下操作:建个文件 ~/.pip/pip.conf(windows:C:\Users\xxx\AppData\Roaming\pip\pip.ini), 内容如下:

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
 
[install]
trusted-host = mirrors.aliyun.com

[global]
timeout = 6000
index-url = http://e.pypi.python.org/simple
[install]
use-mirrors = true
mirrors = http://e.pypi.python.org

[global]
index-url = http://b.pypi.python.org/simple
[install]
use-mirrors = true
mirrors = http://b.pypi.python.org

Q: 批量安装多个包‌

  • 首先,可以通过创建一个包含包名称的文本文件
  • 然后,使用命令pip install -r requirements.txt来批量安装多个包。

注:可以手动创建一个requirements.txt文件,也可以使用以下命令自动生成

pip freeze > requirements.txt

Q: 示例项目

  • 为了更好地理解pip的使用,下面是一个简单的示例项目,展示如何使用pip管理依赖项。
  • 项目依赖
my_project/
│
├── app.py
└── requirements.txt
  • 编写代码
    app.py中,使用requests库进行HTTP请求:
import requests

response = requests.get('https://api.github.com')
print(response.json())
  • 创建requirements.txt

将requests库添加到requirements.txt文件中:

requests==2.24.0
  • 使用Pip安装依赖

在项目目录中,运行以下命令安装依赖:

pip install -r requirements.txt
  • 运行项目

最后,运行app.py文件:

python app.py

你将看到GitHub API的响应输出。

‌ Q: 网络问题‌

如果在使用pip时遇到网络问题,可以尝试更换镜像源使用离线安装包。例如:

pip install -i https://mirrors.aliyun.com/pypi/simple/ {packageName}

Q: 版本冲突‌

  • 在更新或安装包时,可能会遇到版本冲突的问题。

可以通过指定版本号来避免这些问题
例如pip install package==1.0.0

Q: 权限问题‌

  • 在某些情况下,安装包时可能会遇到权限问题。

方法1:可以使用--user选项在用户目录中安装包:

pip install --user {packageName}

方法2:可能需要使用sudo命令来获取管理员权限,特别是在LinuxmacOS系统中。

Q:Python安装第三方库时出现Requirement already satisfied

用户尝试在两个不同的Python环境中安装pytz库,一个环境已经安装了2022.1版本,另一个是2022.7版本。
然后,使用pip install --target命令将pytz安装到指定路径,并提示目标目录已存在,可以选择--upgrade参数替换。
此外,pip版本过旧,推荐升级到23.1.2版本。

  • 问题描述
C:\Users\111111>pip install pytz
Requirement already satisfied: pytz in d:\python3.8.5\lib\site-packages (2022.1)
WARNING: You are using pip version 20.2.4; however, version 23.1.2 is available.
You should consider upgrading via the 'd:\python3.8.5\python3.8.5.exe -m pip install --upgrade pip' command.

C:\Users\111111>python -m pip install pytz
Requirement already satisfied: pytz in d:\anaconda\lib\site-packages (2022.7)

C:\Users\111111>pip install --target=d:\anaconda\lib\site-packages
ERROR: You must give at least one requirement to install (see "pip help install")
WARNING: You are using pip version 20.2.4; however, version 23.1.2 is available.
You should consider upgrading via the 'd:\python3.8.5\python3.8.5.exe -m pip install --upgrade pip' command.
  • 解决方法: pip install --target=路径 包名
C:\Users\111111>pip install --target=d:\anaconda\lib\site-packages pytz
Collecting pytz
  Downloading pytz-2023.3-py2.py3-none-any.whl (502 kB)
     |████████████████████████████████| 502 kB 819 kB/s
Installing collected packages: pytz
Successfully installed pytz-2023.3
WARNING: Target directory d:\anaconda\lib\site-packages\pytz already exists. Specify --upgrade to force replacement.
WARNING: You are using pip version 20.2.4; however, version 23.1.2 is available.
You should consider upgrading via the 'd:\python3.8.5\python3.8.5.exe -m pip install --upgrade pip' command.
  • 参考文献

X 参考文献

posted @ 2025-01-03 00:32  千千寰宇  阅读(123)  评论(0编辑  收藏  举报