Requests神級庫!你會嗎?不會我教你好了!另一神器Pipenv的用法

来源:https://www.cnblogs.com/PY1780/archive/2018/07/20/9343123.html
-Advertisement-
Play Games

簡介 進群:125240963 即可獲取數十套PDF哦! Pipenv,它的項目簡介為 Python Development Workflow for Humans,是 Python 著名的 requests 庫作者 kennethreitz 寫的一個包管理工具,它可以為我們的項目自動創建和管理虛擬 ...


Requests神級庫!你會嗎?不會我教你好了!另一神器Pipenv的用法

 

簡介

進群:125240963   即可獲取數十套PDF哦!

Pipenv,它的項目簡介為 Python Development Workflow for Humans,是 Python 著名的 requests 庫作者 kennethreitz 寫的一個包管理工具,它可以為我們的項目自動創建和管理虛擬環境並非常方便地管理 Python 包,現在它也已經是 Python 官方推薦的包管理工具。

Requests神級庫!你會嗎?不會我教你好了!另一神器Pipenv的用法

 

Requests神級庫!你會嗎?不會我教你好了!另一神器Pipenv的用法

 

Requests神級庫!你會嗎?不會我教你好了!另一神器Pipenv的用法

 

安裝

本文內容基於 Python 3.6 說明,預設的 Python 解釋器命令為 python3,包管理工具命令為 pip3。

Pipenv 是基於 Python 開發的包,所以可以直接用 pip 來安裝,命令如下:

1

pip3 install pipenv

另外還有多種安裝方式,如 Pipsi、Nix、Homebrew,安裝方式可以參考:http://pipenv.readthedocs.io/en/latest/#install-pipenv-today。

Requests神級庫!你會嗎?不會我教你好了!另一神器Pipenv的用法

 

Requests神級庫!你會嗎?不會我教你好了!另一神器Pipenv的用法

 

接下來我們首先驗證一下當前的項目是沒有創建虛擬環境的,調用如下命令:

Requests神級庫!你會嗎?不會我教你好了!另一神器Pipenv的用法

 

執行完畢之後,樣例輸出如下:

Requests神級庫!你會嗎?不會我教你好了!另一神器Pipenv的用法

 

實際上這也和 virtualenv 激活的流程一樣,也是調用了類似 source venv/bin/activate 方法將這個路徑加到全局環境變數最前面,這樣就會優先調用該路徑下的 python、python3、python3.6 可執行文件了。

這時候我們會發現命令行的樣子就變了,前面多了一個 (PipenvTest-VSTVh89E) 的標識,代表當前我們已經切換到了虛擬環境下。

這時我們用 which 或 where 命令查看一下 Python 可執行文件的路徑,命令如下:

Requests神級庫!你會嗎?不會我教你好了!另一神器Pipenv的用法

 

如果有這樣的輸出結果就代表成功安裝了 Django,可以看到此時安裝的 Django 版本為 2.0,代表我們的虛擬環境成功安裝了 Django 2.0 版本。

同時我們還註意到它輸出了一句話叫做 Updated Pipfile.lock,這時我們可以發現項目路徑下又生成了一個 Pipfile.lock 文件,內容如下:

Requests神級庫!你會嗎?不會我教你好了!另一神器Pipenv的用法

 

可以看到裡面標識了 Python 環境基本信息,以及依賴包的版本及 hashes 值。

另外我們還可以註意到 Pipfile 文件內容也有更新,[packages] 部分多了一句 django = “*”,標識了本項目依賴於 Django,這個其實類似於 requirements.txt 文件。

那麼到這裡有小伙伴可能就會問了, Pipfile 和 Pipfile.lock 有什麼用呢?

Requests神級庫!你會嗎?不會我教你好了!另一神器Pipenv的用法

 

好,接下來我們再回歸正題,現在已經安裝好了 Django 了,那麼我們重新運行此腳本便可以成功輸出 Django 版本信息了:

1

(PipenvTest-VSTVh89E) CQC-MAC% python3 main.py

結果如下:

1

2.0.2

這樣我們就成功安裝了 Django 2.x 了,和系統的 Django 1.11 沒有任何衝突。

在此模式的命令行下,我們就可以使用虛擬環境下的 Python 解釋器,而且所安裝的依賴包對外部系統沒有任何影響,而且使用 Pipfile 和 Pipfile.lock 來管理項目的依賴更加方便和健壯。

Requests神級庫!你會嗎?不會我教你好了!另一神器Pipenv的用法

 

樣例輸出如下:

1

/Users/CQC/.local/share/virtualenvs/PipenvTest-VSTVh89E/bin/python

載入系統 Python 包

預設情況下,新創建的虛擬環境是不包含任何第三方包的,但我們也可以開啟載入系統 Python 包功能,使用 –site-packages 即可:

1

pipenv --site-packages

這樣創建的虛擬環境便可以使用系統已安裝的 Python 包了。

開啟虛擬環境

要開啟虛擬環境只需要執行如下命令:

1

pipenv shell

這樣就可以進入虛擬環境,此時運行的 python、python3 命令都是虛擬環境下的。

安裝 Python 包

安裝 Python 包我們不再需要 pip 來安裝,直接使用 Pipenv 也可安裝,如安裝 requests,命令如下:

1

pipenv install requests

安裝完成之後會同時更新項目目錄下的 Pipfile 和 Pipfile.lock 文件。

有時候一些 Python 包是僅僅開發環境需要的,如 pytest,這時候我們通過添加 –dev 參數即可,命令如下:

pipenv install pytest --dev

這時候,pytest 的依賴便會記錄在 Pipfile 的 [dev-packages] 區域:

[dev-packages]

pytest = "*"

獲取包依賴

我們可以使用命令來清晰地呈現出當前安裝的 Python 包版本及之間的依賴關係,命令如下:

pipenv graph

樣例結果如下:

Django==2.0.2

- pytz [required: Any, installed: 2018.3]

pytest==3.4.1

- attrs [required: >=17.2.0, installed: 17.4.0]

- pluggy [required: <0.7,>=0.5, installed: 0.6.0]

- py [required: >=1.5.0, installed: 1.5.2]

- setuptools [required: Any, installed: 38.5.1]

- six [required: >=1.10.0, installed: 1.11.0]

requests==2.18.4

- certifi [required: >=2017.4.17, installed: 2018.1.18]

- chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]

- idna [required: <2.7,>=2.5, installed: 2.6]

- urllib3 [required: <1.23,>=1.21.1, installed: 1.22]

可以看到結果非常清晰,Django 當前安裝了 2.0.2版本,依賴於 pytz 任何版本,已經安裝了 2018.3 版本;pytest 已經安裝了 3.4.1 版本,依賴 attrs>=17.2.0 版本,已經安裝了 17.4.0 版本,另外還依賴 pluggy、py、setuptools、six 這些庫。總之包的依賴關係一目瞭然。

卸載 Python 包

卸載 Python 包也非常簡單,如卸載 requests 包,命令如下:

pipenv uninstall requests

卸載完成之後,Pipfile 和 Pipfile.lock 文件同樣會更新。

如果要卸載全部 Python 包,可以添加 –all 參數:

pipenv uninstall --all

產生 Pipfile.lock

有時候可能 Pipfile.lock 文件不存在或被刪除了,這時候我們可以使用如下命令生成:

pipenv lock

以上便是一些常用的 Pipenv 命令,如果要查看更多用法可以參考其官方文檔:https://docs.pipenv.org/#pipenv-usage。

結語

本文介紹了 Pipenv 的基本用法,作為 pip 和 virtualenv 的結合體,我們可以利用它更方便地創建和管理 Python 虛擬環境,還可以用更加科學的方式管理 Python 包,一舉兩得。

嗯,是時候拋棄 virtualenv 和 pip 了!

轉載請註明:靜覓 » Requests庫作者另一神器Pipenv的用法


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 編寫此文僅為以後可以複習。 最近在自學Java核心技術(很好的書,推薦!!),也是第一次從上面瞭解了goto,或許只是淺層瞭解。 錯誤之處希望大佬們給予批評與建議!!謝謝!!! Java核心技術中就提到過:無限制的使用goto語句確實是導致錯誤的根源,但是有些情況下,偶爾使用goto 跳出迴圈 還是 ...
  • 1、三層架構 表現層 web層(MVC是一個表現層的設計模型) 業務層 service層 持久層 dao層2、三大框架和三層架構的關係(建議學習三大框架的順序:先學習hibernate在學習struts2框架,最後學習spring 框架) hibernate框架:它是一個持久層框架 struts2框 ...
  • 前言 作為一名準備轉行數據分析的小白,我先接觸到的是網路爬蟲學習,每次爬蟲運行都有新的bug收穫,通過不斷debug,終於稍微能爬一些數據了,在此想和大家分享一下~ 私信小編007即可獲取小編精心準備的PDF十套哦! 看看最後一頁搜索結果 。 PS:小技巧,在頁面下部跳轉頁面輸入一個很大的數字,比如 ...
  • 在使用 Spring Cloud 體系來構建微服務的過程中,用戶請求是通過網關(ZUUL 或 Spring APIGateway)以 HTTP 協議來傳輸信息,API 網關將自己註冊為 Eureka 服務治理下的應用,同時也從 Eureka 服務中獲取所有其他微服務的實例信息。搭建 OAuth2 認... ...
  • 封裝將內部細節封裝起來,只暴露外部介面。 比如我們的電視就將複雜的內部線路用外殼封裝起來,只留下外部按鈕或遙控,用戶只需要知道按鈕或遙控的作用就可以,無需明白電視內部是如何工作。 而且封裝也保障了安全性,用戶只能去使用暴露在外部的介面,不能改變內部結構,保障了正常運行。 封裝後,使用者不必知曉複雜的 ...
  • MyLinkList類 1 package List; 2 3 // 單向鏈表 4 public class MyLinkList { 5 private Node root; // 根結點 6 private int size; // 結點個數 7 private int index; // 腳標 ...
  • #include"stdio.h"#include"stdlib.h"typedef struct node{int e;struct node *next;}*NNode;//初始化 NNode InitList(NNode L){ NNode head=NULL; head=(NNode)mal ...
  • 題目描述 A 國有 n 座城市,編號從 1 到 n,城市之間有 m 條雙向道路。每一條道路對車輛都有重量限制,簡稱限重。現在有 q 輛貨車在運輸貨物,司機們想知道每輛車在不超過車輛限重的情況下,最多能運多重的貨物。 輸入 第一行有兩個用一個空格隔開的整數 n,m,表示 A 國有 n 座城市和 m 條 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...