自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python包管理工具之Pipenv

開發(fā) 開發(fā)工具
如果現(xiàn)在在團(tuán)隊(duì)中共享你的項(xiàng)目,比如人員A需要你的項(xiàng)目,他下載項(xiàng)目到本地了,那么運(yùn)行項(xiàng)目首先安裝依賴包,那依賴包怎么解決呢?

?前言

傳統(tǒng)的成熟方案中,我們?yōu)榱吮苊獍姹镜墓芾砘靵y,通常我們是依賴于當(dāng)前的Python版本創(chuàng)建一個(gè)虛擬環(huán)境,并在虛擬環(huán)境中使用pip進(jìn)行包管理?,F(xiàn)在有一個(gè)好用的工具叫pipenv來幫助我們更方便的管理包。

一、pipenv是什么以及它有什么作用?

pipenv是一個(gè)Python的包管理工具。它是requests作者Kenneth Reitz的作品,提供Python的各個(gè)版本間的管理,各種包管理。當(dāng)你開始熟悉并且使用它的時(shí)候,你就知道它有點(diǎn)類似于前端的npm和yarn的味道。

它能自動(dòng)為項(xiàng)目創(chuàng)建和管理虛擬環(huán)境。當(dāng)你使用pipenv的時(shí)候,他會(huì)在項(xiàng)目根目錄下創(chuàng)建Pipfile,用于記錄包的版本信息。當(dāng)你使用pipenv來安裝包的時(shí)候,它會(huì)在項(xiàng)目根目錄生成Pipfile.lock文件來鎖定安裝包的版本和依賴信息,避免構(gòu)建錯(cuò)誤。

它主要解決了以下幾個(gè)問題:

  • 不需要基于當(dāng)前的Python解釋器版本單獨(dú)的創(chuàng)建使用virtualenv和pip工具。
  • 無序維護(hù)requirements.txt文件,使用Pipfile和Pipfile.lock來代替。

基本概念:

  • 在一個(gè)新的項(xiàng)目根目錄下執(zhí)行 pipenv install,則他會(huì)自動(dòng)創(chuàng)建一個(gè)虛擬環(huán)境,并且生成一個(gè)Pipfile文件。
  • 當(dāng) install 命令沒有傳遞參數(shù)指定安裝包,如果當(dāng)前存在Pipfile,則會(huì)自動(dòng)安裝所有Pipfile中的[packages]中的包。

二、安裝pipenv

# MacOS下
pip install pipenv
# shell命令補(bǔ)全
echo 'eval "$(pipenv --completion)"' >> ~/.zshrc
# Centos7下步驟一樣,只需要將~/.zshrc改成 /etc/profile或者其他環(huán)境變量文件即可

三、pipenv優(yōu)缺點(diǎn)

優(yōu)點(diǎn):

  • 自動(dòng)關(guān)聯(lián)項(xiàng)目相關(guān)的 virtualenv,能夠快速的加載 virtualenv 。
  • 提供的pipenv替代pip并自帶一個(gè)依賴清單Pipfile,和依賴鎖定Pipfile.lock。
  • Pipfile除了依賴清單還支持固定pypi源地址,固定python版本。
  • Pipfile還支持dev依賴清單.pipenv install的包會(huì)強(qiáng)制使用Pipfile中的源.
  • 使用pipenv graph命令可以看到依賴樹。
  • 可以直接切換python2和python3。

缺點(diǎn):

  • Windows下命令行終端開頭沒有沒有venv的名稱,讓你不知道是否在虛擬環(huán)境中,容易誤操作。
  • 永久設(shè)置了Pipfile文件中的源以后,Pipfile文件中看到的還是官方源,但是實(shí)際上是已經(jīng)走了你設(shè)置的源了。

四、使用pipenv

創(chuàng)建pipenv虛擬環(huán)境

# 創(chuàng)建項(xiàng)目目錄
mkdir project1
cd project1
# 可以指定Python版本來創(chuàng)建虛擬環(huán)境
pipenv --python 3.10.4
# 由于項(xiàng)目是新建的,所以會(huì)自動(dòng)生成Pipfile和Pipfile.lock文件
pipenv install
# 不進(jìn)入虛擬環(huán)境執(zhí)行命令,默認(rèn)只有以下這幾個(gè)包,和用virtualenv中時(shí)一樣的
$ pipenv run pip list
Package Version
---------- -------
pip 21.3.1
setuptools 59.6.0
wheel 0.37.1
# 激活虛擬環(huán)境
pipenv shell
# 安裝包
pipenv install requests
# 查看包的依賴關(guān)系
pipenv graph
# 升級某一個(gè)包
pipenv update requests
# 退出虛擬環(huán)境
exit
# 刪除虛擬環(huán)境。刪除虛擬環(huán)境不會(huì)刪除項(xiàng)目目錄,只是刪除虛擬環(huán)境的目錄
pipenv --rm

五、團(tuán)隊(duì)共享

如果現(xiàn)在在團(tuán)隊(duì)中共享你的項(xiàng)目,比如人員A需要你的項(xiàng)目,他下載項(xiàng)目到本地了,那么運(yùn)行項(xiàng)目首先安裝依賴包,那依賴包怎么解決呢?

mkdir project2
cd project2
# 然后拷貝Pipfile和Pipfile.lock文件到這個(gè)目錄下,執(zhí)行以下命令
pipenv install

這樣就安裝了所有你項(xiàng)目需要的依賴包了。

六、PyCharm中怎么使用Pipenv

首先設(shè)置一下你的環(huán)境變量。

vi ~/.zshrc
# python pipenv
export PATH="$PATH:/Users/allenjol/.local/" >> ~/.zshrc
source ~/.zshrc

打開pycharm,創(chuàng)建一個(gè)項(xiàng)目,New environment using選擇Pipenv,創(chuàng)建完成后就進(jìn)入了Pipenv的環(huán)境了。

責(zé)任編輯:武曉燕 來源: 運(yùn)維開發(fā)故事
相關(guān)推薦

2022-08-03 08:02:46

PDM工具Python

2022-07-01 09:17:14

Pythonpoetry工具

2022-02-07 23:03:07

Python工具管理庫

2022-05-09 19:19:36

Pnpm管理工具

2013-10-21 10:01:04

編碼工具擴(kuò)展

2010-02-23 17:21:06

Fedora yum

2011-08-12 10:38:09

MongoDB

2015-09-14 16:12:23

命令DNFLinux

2022-06-15 15:09:48

管理工具

2009-04-24 21:13:45

服務(wù)器虛擬化Vmware

2012-12-06 11:31:40

虛擬化

2020-09-30 14:05:22

網(wǎng)絡(luò)管理

2020-10-30 11:18:47

網(wǎng)絡(luò)技術(shù)工具

2012-04-09 09:43:49

云計(jì)算云管理

2024-03-05 08:30:13

RustPython工具

2022-08-10 16:44:08

Linux

2023-08-04 00:06:34

2013-07-17 09:54:17

2013-07-15 15:00:26

項(xiàng)目管理工具

2014-03-28 11:15:42

phpmyadminMySQL管理
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號