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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...