欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python包管理工具pip的使用完全指南

 更新時(shí)間:2025年07月02日 09:07:41   作者:嘆一曲當(dāng)時(shí)只道是尋常  
pip是Python生態(tài)系統(tǒng)的基石,作為Python的官方包管理工具,它讓python包管理變得簡單輕松,這篇文章將詳細(xì)介紹pip的各方面用法,希望對大家有所幫助

一、pip安裝與配置

1.1 獲取pip

現(xiàn)代Python版本(3.4+)已內(nèi)置pip,可通過以下命令驗(yàn)證:

python -m pip --version
# 或
pip --version

若未安裝,可通過以下方式獲?。?/p>

Linux/macOS:

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

Windows:

(Invoke-WebRequest https://bootstrap.pypa.io/get-pip.py).Content | python -

1.2 升級pip

保持pip最新版本至關(guān)重要:

python -m pip install --upgrade pip

1.3 配置國內(nèi)鏡像源

臨時(shí)使用

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

永久配置

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

常用國內(nèi)鏡像源:

  • 清華大學(xué)源 https://pypi.tuna.tsinghua.edu.cn/simple?
  • 豆瓣源 https://pypi.douban.com/simple/?
  • 中國科學(xué)技術(shù)大學(xué) https://pypi.mirrors.ustc.edu.cn/simple?
  • 阿里云 http://mirrors.aliyun.com/pypi/simple/?
  • 中國科技大學(xué) https://pypi.mirrors.ustc.edu.cn/simple/?

二、pip核心功能詳解

2.1 包安裝與管理

基礎(chǔ)安裝

pip install requests

指定版本

pip install django==4.2
pip install "flask>=2.0,<3.0"

升級包

pip install --upgrade pandas

卸載包

pip uninstall numpy

2.2 依賴管理

最佳實(shí)踐:

  • 使用虛擬環(huán)境
  • 使用uv等現(xiàn)代化管理工具,開發(fā)時(shí)就將依賴寫入

常規(guī)解決方案:

pip freeze

pip freeze > requirements.txt

但是這樣做有一個(gè)問題,那就是pip freeze會把當(dāng)前環(huán)境下的所有pip安裝的包都導(dǎo)出到requirements.txt中,但是我們很難保證當(dāng)前的環(huán)境只適用于著一個(gè)項(xiàng)目,也就是會引入很多不需要的包,為了解決這個(gè)問題,我們需要一個(gè)其他的工具,就是pipreqs。

pipreqs

安裝pipreqs

pip install pipreqs

如果是Windows系統(tǒng),會報(bào)編碼錯(cuò)誤(UnicodeDecodeError: 'gbk' codec can't decode byte 0xa8 in position 24: illegal multibyte sequence)

使用時(shí),指定編碼格式

pipreqs . --encoding=utf8 --force

定位到項(xiàng)目根路徑,執(zhí)行

pipreqs ./

之后,requirements.txt將被生成至./路徑下

從文件安裝

pip install -r requirements.txt

高級依賴解析

pip install --no-deps package-name  # 僅安裝指定包,不安裝依賴
pip install --pre package-name     # 包含預(yù)發(fā)布版本

2.3 環(huán)境管理

查看已安裝包

pip list # 查詢已經(jīng)安裝的所有包
pip list | findStr requests # 查詢包含requests的包

查看包詳情

pip show requests

輸出

D:\>pip show requests
Name: requests
Version: 2.31.0
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: C:\Users\{{user}}\miniconda3\Lib\site-packages
Requires: certifi, charset-normalizer, idna, urllib3
Required-by: conda, conda_package_streaming, DownloadKit, DrissionPage, google-api-core, html2image, huggingface-hub, requests-file, tiktoken, tldextract, webdriver-manager

檢查過時(shí)包

pip list --outdated

該命令會去查詢最新版本和本地庫做比較,執(zhí)行時(shí)間較長

三、pip高級技巧

3.1 選擇性安裝

安裝可選依賴

pip install "package[extra1,extra2]"
# 例如
pip install "requests[security]"

Qwen-Agent庫安裝為例

平臺特定依賴

pip install --platform win_amd64 package-name  # 64位Windows
pip install --platform win32 package-name     # 32位Windows
# 強(qiáng)制安裝Linux版本的包(適用于WSL或特殊場景)
pip install --platform manylinux2014_x86_64 --only-binary=:all: package-name
# 安裝macOS版本的包(通常不推薦,僅用于特殊測試)
pip install --platform macosx_10_15_x86_64 --only-binary=:all: package-name

特別提醒

  • 多數(shù)情況下用戶不需要手動指定平臺,pip會自動選擇正確的版本
  • 此技巧主要用于
    • 為其他平臺預(yù)先下載依賴(如Docker鏡像準(zhǔn)備)
    • 解決某些特殊包的兼容性問題
    • 企業(yè)內(nèi)網(wǎng)部署時(shí)預(yù)先緩存依賴

3.2 緩存管理

3.2.1 查看緩存位置

pip cache dir
# 清理特定包的緩存
pip cache remove package-name

使用 pip config list 查看配置

緩存位置可能被自定義配置覆蓋,可以檢查 pip 的全局配置:

pip config list

3.2.2 設(shè)置緩存位置

pip config set global.cache-dir "D:\data\pip\cache"

查看緩存

pip cache list

清理緩存

pip cache purge

再次執(zhí)行

禁用緩存

pip install --no-cache-dir package-name

3.3 構(gòu)建與安裝本地包

從本地安裝

pip install /path/to/package

從源碼安裝(可編輯模式)

pip install -e /path/to/package  # 適合開發(fā)模式

構(gòu)建分發(fā)包

pip install build
python -m build

3.4 查詢包的歷史版本

場景:在一些時(shí)候通過pip install xxx? 安裝第三方庫的時(shí)候默認(rèn)情況下安裝最新版本,由于是最新版本有個(gè)穩(wěn)定性就不得不考慮其中,所以部分場景會存在一些 bug 這就要求我們安裝歷史版本:

如果你是想單純找到歷史版本,下面這條命令就可以搞定:

pip index versions xxxx

例如:

3.5 代碼中安裝

3.5.1 通過pip庫安裝

import pip

def install_package(package_name):
    try:
        pip.main(['install', package_name, '-i', 'https://pypi.douban.com/simple/'])
        print(f"Successfully installed {package_name}")
    except Exception as e:
        print(f"Failed to install {package_name}: {str(e)}")

# 示例:安裝requests庫
install_package('requests')

這段代碼會導(dǎo)入pip庫,并使用pip.main()函數(shù)來安裝指定的庫。

運(yùn)行結(jié)果

WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Looking in indexes: https://pypi.douban.com/simple/
Requirement already satisfied: requests in d:\dev\anaconda_data\envs\auto\lib\site-packages (2.28.2)
Requirement already satisfied: idna<4,>=2.5 in d:\dev\anaconda_data\envs\auto\lib\site-packages (from requests) (2.10)
Requirement already satisfied: charset-normalizer<4,>=2 in d:\dev\anaconda_data\envs\auto\lib\site-packages (from requests) (3.0.1)
Requirement already satisfied: certifi>=2017.4.17 in d:\dev\anaconda_data\envs\auto\lib\site-packages (from requests) (2022.12.7)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in d:\dev\anaconda_data\envs\auto\lib\site-packages (from requests) (1.26.14)
Successfully installed requests

盡量避免使用該方式,未來版本可能會失效

3.5.2 通過subprocess庫安裝

import subprocess

def install_package(package_name):
    try:
        subprocess.check_call(['pip', 'install', package_name])
        print(f"Successfully installed {package_name}")
    except subprocess.CalledProcessError:
        print(f"Failed to install {package_name}")

# 示例:安裝requests庫
install_package('requests')

這段代碼會調(diào)用系統(tǒng)的pip命令來安裝指定的庫。

四、pip疑難解答

4.1 常見錯(cuò)誤處理

權(quán)限問題

pip install --user package-name  # 用戶級安裝

版本沖突

pip install --ignore-installed package-name

SSL錯(cuò)誤

pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org package-name

4.2 依賴解析策略

新舊解析器對比

  • 舊解析器(2020年前):簡單但可能不一致
  • 新解析器(默認(rèn)):更嚴(yán)格但更可靠

強(qiáng)制使用舊解析器

pip install --use-deprecated=legacy-resolver package-name

4.3 性能優(yōu)化

并行安裝

pip install -U pip  # 確保pip最新版
pip install --use-feature=fast-deps package-name

二進(jìn)制緩存

pip install --cache-dir /path/to/cache package-name

五、pip生態(tài)系統(tǒng)

5.1 相關(guān)工具

pip-tools:高級依賴管理

pip install pip-tools
pip-compile requirements.in  # 生成精確的requirements.txt

pipdeptree:依賴樹可視化

pip install pipdeptree
pipdeptree

pipx:全局Python應(yīng)用安裝

pip install pipx
pipx install black

5.2 與虛擬環(huán)境集成

venv(Python內(nèi)置):

python -m venv myenv
source myenv/bin/activate  # Linux/macOS
myenv\Scripts\activate     # Windows
pip install package-name

virtualenv(更強(qiáng)大):

pip install virtualenv
virtualenv myenv

 以上就是Python包管理工具pip的使用完全指南的詳細(xì)內(nèi)容,更多關(guān)于Python pip的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python免費(fèi)試用最新Openai?API的步驟

    Python免費(fèi)試用最新Openai?API的步驟

    本文主要介紹了Python免費(fèi)試用最新Openai?API,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Python安裝tar.gz格式文件方法詳解

    Python安裝tar.gz格式文件方法詳解

    這篇文章主要介紹了Python安裝tar.gz格式文件方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • python寫入中英文字符串到文件的方法

    python寫入中英文字符串到文件的方法

    這篇文章主要介紹了python寫入中英文字符串到文件的方法,實(shí)例分析了Python操作中英文字符串的技巧,非常簡單實(shí)用,需要的朋友可以參考下
    2015-05-05
  • Flask搭建虛擬環(huán)境并運(yùn)行第一個(gè)flask程序

    Flask搭建虛擬環(huán)境并運(yùn)行第一個(gè)flask程序

    這篇文章主要介紹了Flask搭建虛擬環(huán)境并運(yùn)行第一個(gè)flask程序,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • python中g(shù)lobal與nonlocal比較

    python中g(shù)lobal與nonlocal比較

    這篇文章主要介紹了python中g(shù)lobal與nonlocal比較,global關(guān)鍵字用來在函數(shù)或其他局部作用域中使用全局變量,nonlocal關(guān)鍵字用來在函數(shù)或其他作用域中使用外層(非全局)變量,需要的朋友可以參考下
    2014-11-11
  • 在OpenCV里使用Camshift算法的實(shí)現(xiàn)

    在OpenCV里使用Camshift算法的實(shí)現(xiàn)

    這篇文章主要介紹了在OpenCV里使用Camshift算法的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Python正則表達(dá)式re模塊詳解(建議收藏!)

    Python正則表達(dá)式re模塊詳解(建議收藏!)

    正則表達(dá)式是用來匹配與查找字符串的,從網(wǎng)上爬取數(shù)據(jù)自然或多或少會用到正則表達(dá)式,python的正則表達(dá)式要先引入re模塊,這篇文章主要給大家介紹了關(guān)于Python正則表達(dá)式re模塊的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • python常量折疊基礎(chǔ)知識點(diǎn)講解

    python常量折疊基礎(chǔ)知識點(diǎn)講解

    在本篇文章里小編給大家整理的是一篇關(guān)于python常量折疊基礎(chǔ)知識點(diǎn)講解,對此有興趣的朋友可以跟著學(xué)習(xí)下。
    2021-02-02
  • Pytorch矩陣乘法(torch.mul() 、 torch.mm() 和torch.matmul()的區(qū)別)

    Pytorch矩陣乘法(torch.mul() 、 torch.mm() 和torch.m

    在深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)的世界里,矩陣乘法是一項(xiàng)至關(guān)重要的操作,本文主要介紹了Pytorch矩陣乘法,包含了torch.mul() 、 torch.mm() 和torch.matmul()的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • Python 遍歷列表里面序號和值的方法(三種)

    Python 遍歷列表里面序號和值的方法(三種)

    本文主要介紹了Python 列表(List)的三種遍歷(序號和值)方法。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02

最新評論