日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python基础】这份 pip 使用小抄,要有全有多全(建议收藏)

發布時間:2025/3/12 python 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python基础】这份 pip 使用小抄,要有全有多全(建议收藏) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:寫代碼的明哥
來源:Python編程時光

所有的 Python 開發者都清楚,Python 之所以如此受歡迎,能夠在眾多高級語言中,脫穎而出,除了語法簡單,上手容易之外,更多還要歸功于 Python 生態的完備,有數以萬計的 Python 愛好者愿意以 Python 為基礎封裝出各種有利于開發的第三方工具包。

這才使用我們能夠以最快的速度開發出一個滿足基本需要的項目,而不是每次都重復造輪子。

Python 從1991年誕生到現在,已經過去28個年頭了,這其間產生了數以萬計的第三方包,且每個包都會不斷更新,會有越來越多的版本。

當你在一個復雜的項目環境中,如果沒有一個有效的依賴包管理方案,項目的維護將會是一個大問題。

pip 是官方推薦的包管理工具,在大多數開發者眼里,pip 幾乎是 Python 的標配。

?說到 pip ,大家都不會陌生。但我相信不少人,只是熟悉幾個常用的用法,而對于其他幾個低頻且實用的用法,卻知之甚少,這兩天,我查閱官方文檔,把這些用法整理了一下,應該是網絡上比較全的介紹。

1. 查詢軟件包

查詢當前環境安裝的所有軟件包

$?pip?list

查詢 pypi 上含有某名字的包

$?pip?search?pkg

查詢當前環境中可升級的包

$?pip?list?--outdated

查詢一個包的詳細內容

$?pip?show?pkg

2. 下載軟件包

在不安裝軟件包的情況下下載軟件包到本地

$?pip?download?--destination-directory?/local/wheels?-r?requirements.txt

下載完,總歸是要安裝的,可以指定這個目錄中安裝軟件包,而不從 pypi 上安裝。

$?pip?install?--no-index?--find-links=/local/wheels?-r?requirements.txt

當然你也從你下載的包中,自己構建生成 wheel 文件

$?pip?install?wheel $?pip?wheel?--wheel-dir=/local/wheels?-r?requirements.txt

3. 安裝軟件包

使用 pip install <pkg> 可以很方便地從 pypi 上搜索下載并安裝 python 包。

如下所示

$?pip?install?requests

這是安裝包的基本格式,我們也可以為其添加更多參數來實現不同的效果。

3.1 只從本地安裝,而不從 pypi 安裝

#?前提你得保證你已經下載?pkg?包到?/local/wheels?目錄下 $?pip?install?--no-index?--find-links=/local/wheels?pkg

3.2 限定版本進行軟件包安裝

以下三種,對單個 python 包的版本進行了約束

#?所安裝的包的版本為?2.1.2 $?pip?install?pkg==2.1.2#?所安裝的包必須大于等于?2.1.2 $?pip?install?pkg>=2.1.2#?所安裝的包必須小于等于?2.1.2 $?pip?install?pkg<=2.1.2

以下命令用于管理/控制整個 python 環境的包版本

#?導出依賴包列表 pip?freeze?>requirements.txt#?從依賴包列表中安裝 pip?install?-r?requirements.txt#?確保當前環境軟件包的版本(并不確保安裝) pip?install?-c?constraints.txt

3.3 限制不使用二進制包安裝

由于默認情況下,wheel 包的平臺是運行 pip download 命令 的平臺,所以可能出現平臺不適配的情況。

比如在 MacOS 系統下得到的 pymongo-2.8-cp27-none-macosx_10_10_intel.whl 就不能在 linux_x86_64 安裝。

使用下面這條命令下載的是 tar.gz 的包,可以直接使用 pip install 安裝。

比 wheel 包,這種包在安裝時會進行編譯,所以花費的時間會長一些。

#?下載非二進制的包 $?pip?download?--no-binary=:all:?pkg# 安裝非二進制的包 $?pip?install?pkg?--no-binary

3.4 指定代理服務器安裝

當你身處在一個內網環境中時,無法直接連接公網。這時候你使用pip install 安裝包,就會失敗。

面對這種情況,可以有兩種方法:

  • 下載離線包拷貝到內網機器中安裝

  • 使用代理服務器轉發請求

  • 第一種方法,雖說可行,但有相當多的弊端

    • 步驟繁雜,耗時耗力

    • 無法處理包的依賴問題

    這里重點來介紹,第二種方法:

    $?pip?install?--proxy?[user:passwd@]http_server_ip:port?pkg

    每次安裝包就發輸入長長的參數,未免有些麻煩,為此你可以將其寫入配置文件中:$HOME/.config/pip/pip.conf

    對于這個路徑,說明幾點

    • 不同的操作系統,路徑各不相同

    #?Linux/Unix: /etc/pip.conf ~/.pip/pip.conf ~/.config/pip/pip.conf#?Mac?OSX: ~/Library/Application?Support/pip/pip.conf ~/.pip/pip.conf /Library/Application?Support/pip/pip.conf#?Windows: %APPDATA%\pip\pip.ini %HOME%\pip\pip.ini C:\Documents?and?Settings\All?Users\Application?Data\PyPA\pip\pip.conf?(Windows?XP) C:\ProgramData\PyPA\pip\pip.conf?(Windows?7及以后)?
    • 若在你的機子上沒有此文件,則自行創建即可

    如何配置,這邊給個樣例:

    [global] index-url?=?http://mirrors.aliyun.com/pypi/simple/?#?替換出自己的代理地址,格式為[user:passwd@]proxy.server:port proxy=http://xxx.xxx.xxx.xxx:8080?[install] #?信任阿里云的鏡像源,否則會有警告 trusted-host=mirrors.aliyun.com?

    3.5 安裝用戶私有軟件包

    很多人可能還不清楚,python 的安裝包是可以用戶隔離的。

    如果你擁有管理員權限,你可以將包安裝在全局環境中。在全局環境中的這個包可被該機器上的所有擁有管理員權限的用戶使用。

    如果一臺機器上的使用者不只一樣,自私地將在全局環境中安裝或者升級某個包,是不負責任且危險的做法。

    面對這種情況,我們就想能否安裝單獨為我所用的包呢?

    慶幸的是,還真有。

    我能想到的有兩種方法:

  • 使用虛擬環境

  • 將包安裝在用戶的環境中

  • 虛擬環境,之前寫過幾篇文章,這里不再展開講。

    今天的重點是第二種方法,教你如何安裝用戶私有的包?

    命令也很簡單,只要加上 --user 參數,pip 就會將其安裝在當前用戶的 ~/.local/lib/python3.x/site-packages 下,而其他用戶的 python 則不會受影響。

    pip?install?--user?pkg

    來舉個例子

    #?在全局環境中未安裝?requests [root@localhost?~]#?pip?list?|?grep?requests??? [root@localhost?~]#?su?-?wangbm [root@localhost?~]#?#?由于用戶環境繼承自全局環境,這里也未安裝 [wangbm@localhost?~]#?pip?list?|?grep?requests? [wangbm@localhost?~]#?pip?install?--user?requests?? [wangbm@localhost?~]#?pip?list?|?grep?requests? requests?(2.22.0) [wangbm@localhost?~]#?#?從?Location?屬性可發現?requests?只安裝在當前用戶環境中 [wangbm@ws_compute01?~]$?pip?show?requests --- Metadata-Version:?2.1 Name:?requests Version:?2.22.0 Summary:?Python?HTTP?for?Humans. Home-page:?http://python-requests.org Author:?Kenneth?Reitz Author-email:?me@kennethreitz.org Installer:?pip License:?Apache?2.0 Location:?/home/wangbm/.local/lib/python2.7/site-packages [wangbm@localhost?~]$?exit logout#?退出?wangbm?用戶,在?root?用戶環境中發現?requests?未安裝 [root@localhost?~]$?pip?list?|?grep?requests [root@localhost?~]$?

    當你身處個人用戶環境中,python 導包時會先檢索當前用戶環境中是否已安裝這個包,已安裝則優先使用,未安裝則使用全局環境中的包。

    驗證如下:

    >>>?import?sys >>>?from?pprint?import?pprint? >>>?pprint(sys.path) ['','/usr/lib64/python27.zip','/usr/lib64/python2.7','/usr/lib64/python2.7/plat-linux2','/usr/lib64/python2.7/lib-tk','/usr/lib64/python2.7/lib-old','/usr/lib64/python2.7/lib-dynload','/home/wangbm/.local/lib/python2.7/site-packages','/usr/lib64/python2.7/site-packages','/usr/lib64/python2.7/site-packages/gtk-2.0','/usr/lib/python2.7/site-packages','/usr/lib/python2.7/site-packages/pip-18.1-py2.7.egg','/usr/lib/python2.7/site-packages/lockfile-0.12.2-py2.7.egg'] >>>?

    3.6 延長超時時間

    若網絡情況不是很好,在安裝某些包時經常會因為 ReadTimeout 而失敗。

    對于這種情況,一般重試幾次就好了。

    但是這樣難免有些麻煩,有沒有更好的解決方法呢?

    有的,可以通過延長超時時間。

    $?pip?install?--default-timeout=100?<packages>

    4. 卸載軟件包

    就一條命令,不再贅述

    $?pip?uninstall?pkg

    5. 升級軟件包

    想要對現有的 python 進行升級,其本質上也是先從 pypi 上下載最新版本的包,再對其進行安裝。所以升級也是使用 pip install,只不過要加一個參數 --upgrade。

    $?pip?install?--upgrade?pkg

    在升級的時候,其實還有一個不怎么用到的選項 --upgrade-strategy,它是用來指定升級策略。

    它的可選項只有兩個:

    • eager :升級全部依賴包

    • only-if-need:只有當舊版本不能適配新的父依賴包時,才會升級。

    在 pip 10.0 版本之后,這個選項的默認值是 only-if-need,因此如下兩種寫法是一互致的。

    pip?install?--upgrade?pkg1? pip?install?--upgrade?pkg1?--upgrade-strategy?only-if-need

    6. 配置文件

    由于在使用 pip 安裝一些包時,默認會使用 pip 的官方源,所以經常會報網絡超時失敗。

    常用的解決辦法是,在安裝包時,使用 -i 參數指定一個國內的鏡像源。但是每次指定就很麻煩呀,還要打超長的一串字母。

    這時候,其實可以將這個源寫進 pip 的配置文件里。以后安裝的時候,就默認從你配置的這個 源里安裝了。

    那怎么配置呢?文件文件在哪?

    使用win+r 輸入 %APPDATA% 進入用戶資料文件夾,查看有沒有一個 pip 的文件夾,若沒有則創建之。

    然后進入這個 文件夾,新建一個 pip.ini 的文件,內容如下

    [global] time-out=60 index-url=https://pypi.tuna.tsinghua.edu.cn/simple/ [install] trusted-host=tsinghua.edu.cn

    以上幾乎包含了 pip 的所有使用場景,也許有不少用法你還沒有用過,不過沒關系,你只要收藏本文,等到要用的時候再來查閱即可。

    往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯溫州大學《機器學習課程》視頻 本站qq群851320808,加入微信群請掃碼:

    總結

    以上是生活随笔為你收集整理的【Python基础】这份 pip 使用小抄,要有全有多全(建议收藏)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 亚洲乱轮视频 | 日韩免费一级 | 色88久久久久高潮综合影院 | 大陆明星乱淫(高h)小说 | 国产精品中文字幕在线观看 | 久久久久久久影视 | 亚洲精品码 | 色狠狠av| 精品人妻久久久久一区二区三区 | 欧美亚一区二区三区 | 人人艹在线 | 伊人网在线观看 | 国产欧美视频一区二区 | 亚洲最大中文字幕 | 自拍偷拍亚洲 | 黄色小视频免费观看 | 伊人久久久久久久久 | 伊人成长网 | 三级网站在线看 | 欧美日韩在线影院 | 国产精品美女久久久久av爽 | 8x8ⅹ成人永久免费视频 | 日批视频在线播放 | 樱井莉亚av | 日本亚洲免费 | 久久久精品免费视频 | 亚洲乱码一区二区三区 | 成人免费大片黄在线播放 | 国产一区二区视频在线观看免费 | 欧美日韩乱 | 精品无码人妻一区二区三区品 | 青青青手机视频 | 男人视频网站 | 性高潮在线观看 | 另类激情综合 | 日穴| 狠狠爱夜夜 | 无码h肉动漫在线观看 | 在线观看国产精品一区 | 亚洲熟悉妇女xxx妇女av | 久久这里只有精品23 | 毛片基地免费观看 | 18岁免费观看电视连续剧 | av色片| 日韩成人免费观看 | 超碰99在线 | 天天综合网天天综合 | 已婚少妇美妙人妻系列 | 天堂av片| 欧美国产中文字幕 | 男人狂揉女人下部视频 | 五月婷婷中文字幕 | 亚洲福利一区二区三区 | 一区二区三区视频网站 | 在线黄色网 | 欧美一区二区视频在线观看 | 欧美做爰啪啪xxxⅹ性 | 国产国拍精品亚洲 | 亚洲一区二区三区精品视频 | 男人都懂的网站 | 电影《走路上学》免费 | 永久免费av网站 | 超碰免费公开 | 下面一进一出好爽视频 | av手机在线观看 | 色综合a| 欧美在线视频免费 | 亚洲欧洲国产精品 | 成人涩涩网 | 日韩精品久久久久久久酒店 | 国产三级精品三级在线观看 | 国产又猛又黄 | 欧美成人三级精品 | 欧美激情视频一区 | 一区二区免费在线视频 | 狠狠狠| 天天操国产 | 国产亚洲精品av | 香蕉成视频人app下载安装 | 精品一区电影 | 精品久久久久国产 | 男欢女爱久石 | 欧美激情视频一区二区三区 | 波多野结衣电影免费观看 | 一卡二卡三卡 | 午夜影院18 | 稀缺呦国内精品呦 | 亚洲伦理在线播放 | 动漫一区二区 | 四房婷婷 | 影音先锋男人天堂 | 777黄色 | 成年人福利网站 | 婷婷色中文字幕 | 色婷婷激情五月 | 欧美成人黑人xx视频免费观看 | 国产一区二区三区在线观看 | china国模大尺度pics | 黑人粗进入欧美aaaaa |