好用的 Python 虛擬環(huán)境,沒有之一
本文轉(zhuǎn)載自微信公眾號「Python技術」,作者派森醬。轉(zhuǎn)載本文請聯(lián)系Python技術公眾號。
一般我們創(chuàng)建 Python 項目的時候都會創(chuàng)建一個虛擬環(huán)境,這樣做的好處就是會把項目環(huán)境和操作系統(tǒng)環(huán)境區(qū)分開來,避免把操作系統(tǒng)環(huán)境弄亂。
還有一個痛點就是我們在開發(fā)環(huán)境開發(fā)完成之后,需要把代碼復制到生產(chǎn)環(huán)境上線,這時候我不想將開發(fā)環(huán)境的所有包重新在 pip install 一次了,怎么辦?
于是 pipenv 應運而生。見名識意,pipenv 就是 pip 和 virtualenv 的結合體。
安裝
直接使用 pip3 進行安裝即可。
- pip3 install pipenv
創(chuàng)建虛擬環(huán)境
- $ mkdir demo
- $ cd demo
- $ pipenv install
安裝完成之后會在你的項目目錄自動生成 Pipfile 和 Pipfile.lock 兩個文件,他們主要是用來管理包的。不信,我們用 pipenv 安裝下 requests 庫試一下。
- $ pipenv install requests
咱們來看下 Pipfile 和 Pipfile.lock 的內(nèi)容。
- # Pipfile
- [[source]]
- url = "https://pypi.org/simple"
- verify_ssl = true
- name = "pypi"
- [packages]
- requests = "*"
- [dev-packages]
- [requires]
- python_version = "3.8"
- # Pipfile.lock
- {
- 省略部分信息
- "default": {
- "requests": {
- "hashes": [
- "sha256:27973dd4a...",
- "sha256:c210084e3..."
- ],
- "index": "pypi",
- "version": "==2.25.1"
- },
- 省略部分信息
- },
- "develop": {}
- }
Pipfile 列出了 requests 庫的信息和 Python 版本信息,細心的你可能發(fā)現(xiàn)了,該文件中還有一個 dev-packages 的信息,安裝時如果指定 -dev 參數(shù),那么就會記錄在 dev-packages 下面。而 Pipfile.lock 則保存了庫的哈希值,這是確保生產(chǎn)環(huán)境和開發(fā)環(huán)境庫信息一致的關鍵。
當你把項目從開發(fā)環(huán)境復制到生產(chǎn)環(huán)境之后,只需要執(zhí)行 pipenv install 就可以了,無需在重新安裝之前在開發(fā)環(huán)境安裝的包了,是不是很省心。
其他命令
進入虛擬環(huán)境:
- $ pipenv shell
退出虛擬環(huán)境:
- $ exit
安裝庫:
- $ pipenv install xxx
刪除庫:
- # 刪除指定庫
- $ pipenv uninstall xxx
- # 刪除所有庫
- $ pipenv uninstall --all
升級庫:
- $ pipenv update
查看庫的具體信息:
- $ pipenv open xxx
獲取本地工程路徑:
- $ pipenv --where
獲取虛擬環(huán)境路徑:
- $ pipenv --venv
檢查庫的依賴關系,這個非常有用。
- $ pipenv graph
檢查庫的安全性:
- $ pipenv check
刪除虛擬環(huán)境:
- $ pipenv --rm
總結
今天我們介紹了 Python 虛擬環(huán)境 pipenv 的使用,好的工具可以事半功倍,希望對小伙伴們有所幫助。