chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python開(kāi)發(fā)的Pipenv能解決什么問(wèn)題

我快閉嘴 ? 作者:工程師李察 ? 2018-10-06 14:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

只用了一年, Pipenv 就變成了管理軟件包依賴關(guān)系的 Python 官方推薦資源。

Pipenv 是由 Kenneth Reitz 在一年多前創(chuàng)建的“面向開(kāi)發(fā)者而生的 Python 開(kāi)發(fā)工作流”,它已經(jīng)成為管理軟件包依賴關(guān)系的Python 官方推薦資源。但是對(duì)于它解決了什么問(wèn)題,以及它如何比使用pip和requirements.txt文件的標(biāo)準(zhǔn)工作流更有用處,這兩點(diǎn)仍然存在困惑。在本月的 Python 專(zhuān)欄中,我們將填補(bǔ)這些空白。

Python 包安裝簡(jiǎn)史

為了理解 Pipenv 所解決的問(wèn)題,看一看 Python 包管理如何發(fā)展十分有用的。

讓我們回到第一個(gè) Python 版本,這時(shí)我們有了 Python,但是沒(méi)有干凈的方法來(lái)安裝軟件包。

然后有了Easy Install,這是一個(gè)可以相對(duì)容易地安裝其他 Python 包的軟件包,但它也帶來(lái)了一個(gè)問(wèn)題:卸載不需要的包并不容易。

pip登場(chǎng),絕大多數(shù) Python 用戶都熟悉它。pip可以讓我們安裝和卸載包。我們可以指定版本,運(yùn)行pip freeze > requirements.txt來(lái)輸出一個(gè)已安裝包列表到一個(gè)文本文件,還可以用相同的文本文件配合pip install -r requirements.txt來(lái)安裝一個(gè)應(yīng)用程序需要的所有包。

但是pip并沒(méi)有包含將軟件包彼此隔離的方法。我們可能會(huì)開(kāi)發(fā)使用相同庫(kù)的不同版本的應(yīng)用程序,因此我們需要一種方法來(lái)實(shí)現(xiàn)這一點(diǎn)。隨之而來(lái)的是虛擬環(huán)境,它使我們能夠?yàn)槲覀冮_(kāi)發(fā)的每個(gè)應(yīng)用程序創(chuàng)建一個(gè)小型的、隔離的環(huán)境。我們已經(jīng)看到了許多管理虛擬環(huán)境的工具:virtualenv、venv、virtualenvwrapper、pyenv、pyenv-virtualenv、pyenv-virtualenvwrapper等等。它們都可以很好地使用pip和requirements.txt文件。

新方法:Pipenv

Pipenv 旨在解決幾個(gè)問(wèn)題:

首先,需要pip庫(kù)來(lái)安裝包,外加一個(gè)用于創(chuàng)建虛擬環(huán)境的庫(kù),以及用于管理虛擬環(huán)境的庫(kù),再有與這些庫(kù)相關(guān)的所有命令。這些都需要管理。Pipenv 附帶包管理和虛擬環(huán)境支持,因此你可以使用一個(gè)工具來(lái)安裝、卸載、跟蹤和記錄依賴性,并創(chuàng)建、使用和組織你的虛擬環(huán)境。當(dāng)你使用它啟動(dòng)一個(gè)項(xiàng)目時(shí),如果你還沒(méi)有使用虛擬環(huán)境的話,Pipenv 將自動(dòng)為該項(xiàng)目創(chuàng)建一個(gè)虛擬環(huán)境。

Pipenv 通過(guò)放棄requirements.txt規(guī)范轉(zhuǎn)而將其移動(dòng)到一個(gè)名為Pipfile的新文檔中來(lái)完成這種依賴管理。當(dāng)你使用 Pipenv 安裝一個(gè)庫(kù)時(shí),項(xiàng)目的Pipfile會(huì)自動(dòng)更新安裝細(xì)節(jié),包括版本信息,還有可能的 Git 倉(cāng)庫(kù)位置、文件路徑和其他信息。

其次,Pipenv 希望能更容易地管理復(fù)雜的相互依賴關(guān)系。你的應(yīng)用程序可能依賴于某個(gè)特定版本的庫(kù),而那個(gè)庫(kù)可能依賴于另一個(gè)特定版本的庫(kù),這些依賴關(guān)系如海龜般堆疊起來(lái)。當(dāng)你的應(yīng)用程序使用的兩個(gè)庫(kù)有沖突的依賴關(guān)系時(shí),你的情況會(huì)變得很艱難。Pipenv 希望通過(guò)在一個(gè)名為Pipfile.lock的文件中跟蹤應(yīng)用程序相互依賴關(guān)系樹(shù)來(lái)減輕這種痛苦。Pipfile.lock還會(huì)驗(yàn)證生產(chǎn)中是否使用了正確版本的依賴關(guān)系。

另外,當(dāng)多個(gè)開(kāi)發(fā)人員在開(kāi)發(fā)一個(gè)項(xiàng)目時(shí),Pipenv 很方便。通過(guò)pip工作流,凱西可能會(huì)安裝一個(gè)庫(kù),并花兩天時(shí)間使用該庫(kù)實(shí)現(xiàn)一個(gè)新功能。當(dāng)凱西提交更改時(shí),他可能會(huì)忘記運(yùn)行pip freeze來(lái)更新requirements.txt文件。第二天,杰米拉取凱西的改變,測(cè)試就突然失敗了。這樣會(huì)花費(fèi)好一會(huì)兒才能意識(shí)到問(wèn)題是在requirements.txt文件中缺少相關(guān)庫(kù),而杰米尚未在虛擬環(huán)境中安裝這些文件。

因?yàn)?Pipenv 會(huì)在安裝時(shí)自動(dòng)記錄依賴性,如果杰米和凱西使用了 Pipenv,Pipfile會(huì)自動(dòng)更新并包含在凱西的提交中。這樣杰米和凱西就可以節(jié)省時(shí)間并更快地運(yùn)送他們的產(chǎn)品。

最后,將 Pipenv 推薦給在你項(xiàng)目上工作的其他人,因?yàn)樗褂脴?biāo)準(zhǔn)化的方式來(lái)安裝項(xiàng)目依賴項(xiàng)和開(kāi)發(fā)和測(cè)試的需求。使用pip工作流和requirements.txt文件意味著你可能只有一個(gè)requirements.txt文件,或針對(duì)不同環(huán)境的多個(gè)requirements.txt文件。例如,你的同事可能不清楚他們是否應(yīng)該在他們的筆記本電腦上運(yùn)行項(xiàng)目時(shí)是運(yùn)行dev.txt還是local.txt。當(dāng)兩個(gè)相似的requirements.txt文件彼此不同步時(shí)它也會(huì)造成混淆:local.txt是否過(guò)時(shí)了,還是真的應(yīng)該與dev.txt不同?多個(gè)requirements.txt文件需要更多的上下文和文檔,以使其他人能夠按照預(yù)期正確安裝依賴關(guān)系。這個(gè)工作流程有可能會(huì)混淆同時(shí)并增加你的維護(hù)負(fù)擔(dān)。

使用 Pipenv,它會(huì)生成Pipfile,通過(guò)為你管理對(duì)不同環(huán)境的依賴關(guān)系,可以避免這些問(wèn)題。該命令將安裝主項(xiàng)目依賴項(xiàng):

pipenv install

添加 --dev 標(biāo)志將安裝開(kāi)發(fā)/測(cè)試的 requirements.txt:

pipenv install --dev

使用 Pipenv 還有其他好處:它具有更好的安全特性,以易于理解的格式繪制你的依賴關(guān)系,無(wú)縫處理 .env 文件,并且可以在一個(gè)文件中自動(dòng)處理開(kāi)發(fā)與生產(chǎn)環(huán)境的不同依賴關(guān)系。你可以在文檔中閱讀更多內(nèi)容。

使用 Pipenv

使用 Pipenv 的基礎(chǔ)知識(shí)在官方 Python 包管理教程管理應(yīng)用程序依賴關(guān)系部分中詳細(xì)介紹。要安裝 Pipenv,使用 pip:

pip install pipenv

要安裝在項(xiàng)目中使用的包,請(qǐng)更改為項(xiàng)目的目錄。然后安裝一個(gè)包(我們將使用 Django 作為例子),運(yùn)行:

pipenv install django

你會(huì)看到一些輸出,表明 Pipenv 正在為你的項(xiàng)目創(chuàng)建一個(gè) Pipfile。

如果你還沒(méi)有使用虛擬環(huán)境,你還會(huì)看到 Pipenv 的一些輸出,說(shuō)明它正在為你創(chuàng)建一個(gè)虛擬環(huán)境。

然后,你將看到你在安裝包時(shí)常看到的輸出。

為了生成 Pipfile.lock 文件,運(yùn)行:

pipenv lock

你也可以使用 Pipenv 運(yùn)行 Python 腳本。運(yùn)行名為 hello.py 的上層 Python 腳本:

pipenv run python hello.py

你將在控制臺(tái)中看到預(yù)期結(jié)果。

啟動(dòng)一個(gè) shell,運(yùn)行:

pipenv shell

如果你想將當(dāng)前使用 requirements.txt 文件的項(xiàng)目轉(zhuǎn)換為使用 Pipenv,請(qǐng)安裝 Pipenv 并運(yùn)行:

pipenv install requirements.txt

這將創(chuàng)建一個(gè) Pipfile 并安裝指定的 requirements.txt??紤]一下升級(jí)你的項(xiàng)目!

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86779
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    示波器的FFT能解什么問(wèn)題?

    本文將教你用五種方法把示波器上的FFT做成極致! 一、示波器上的FFT是什么? 二、示波器的FFT能解什么問(wèn)題? 三、示波器的FFT 經(jīng)常變成用戶手里的雞肋,問(wèn)題在哪? 四、我們把示波器上的頻譜
    的頭像 發(fā)表于 08-23 09:31 ?1.8w次閱讀

    python開(kāi)發(fā)工具推薦

    Python開(kāi)發(fā)軟件可根據(jù)其用途不同分為兩種,一種是Python代碼編輯器,一種是Python集成開(kāi)發(fā)工具,兩者的配合使用可以極大的提高
    發(fā)表于 04-12 16:12

    Pipenv使用技巧

    ”微服務(wù)一條龍“最佳指南-工具篇:初步使用Pipenv
    發(fā)表于 09-17 07:11

    FPGA能解什么問(wèn)題看了就知道

    了解FPGA?首先,如果你從未接觸過(guò)FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列),或者有過(guò)一點(diǎn)基礎(chǔ)想要繼續(xù)深入了解這個(gè)行業(yè),在這個(gè)小節(jié),我會(huì)向你介紹FPGA,并且向你解釋FPGA都能解什么問(wèn)題,如何解決這些問(wèn)題,并討論如何將設(shè)計(jì)進(jìn)行優(yōu)化等等。
    發(fā)表于 10-21 13:32

    eplan_路徑功能文本能解什么問(wèn)題

    eplan_路徑功能文本是什么?eplan_路徑功能文本能解什么問(wèn)題?eplan_路徑功能文本可能存在哪些問(wèn)題?
    發(fā)表于 09-06 07:24

    Python項(xiàng)目開(kāi)發(fā)實(shí)戰(zhàn)1-50

    Python項(xiàng)目開(kāi)發(fā)實(shí)戰(zhàn)
    發(fā)表于 03-27 09:02 ?55次下載

    python適合做什么開(kāi)發(fā)_python未來(lái)發(fā)展怎么樣

    本文開(kāi)始介紹了pythonPython優(yōu)缺點(diǎn),其次闡述了python可以用來(lái)做什么開(kāi)發(fā),最后分析了Python語(yǔ)言在未來(lái)的發(fā)展前景。
    發(fā)表于 04-26 16:32 ?8430次閱讀

    一份2018年Python開(kāi)源項(xiàng)目Top100清單!

    。這是 Python 官方推薦的一個(gè) Python 包管理工具,可以幫你把 Pipfile, pip, 和 virtualenv 整合到一起, 而且你也可以在瀏覽器中快速使用 Pipenv。
    的頭像 發(fā)表于 01-02 09:56 ?3185次閱讀
    一份2018年<b class='flag-5'>Python</b>開(kāi)源項(xiàng)目Top100清單!

    Python工程師面試時(shí)需要準(zhǔn)備什么

    隨著互聯(lián)網(wǎng)的發(fā)展,python語(yǔ)言現(xiàn)在變得越來(lái)越火爆,Python程序員越來(lái)越受到大家的青睞!那么想進(jìn)入Python行業(yè),面試時(shí)需要注意些什么問(wèn)題呢?我們?cè)趨⒓?/div>
    的頭像 發(fā)表于 03-01 14:25 ?2532次閱讀

    數(shù)據(jù)中臺(tái)是什么,它能幫我們解決什么問(wèn)題

    近幾年來(lái)數(shù)據(jù)中臺(tái)概念大火,市面上掀起了一波建業(yè)務(wù)中臺(tái)、數(shù)據(jù)中臺(tái)熱潮,那么數(shù)據(jù)中臺(tái)到底是什么?它的出現(xiàn)能解什么問(wèn)題呢?
    的頭像 發(fā)表于 04-13 15:11 ?3627次閱讀

    python開(kāi)發(fā)環(huán)境搭建步驟

    在正式學(xué)習(xí)Python編程之前,要先安裝Python,這包括“標(biāo)準(zhǔn)Python”、“第三方Python包”、“Python程序
    的頭像 發(fā)表于 05-05 22:23 ?3357次閱讀
    <b class='flag-5'>python</b><b class='flag-5'>開(kāi)發(fā)</b>環(huán)境搭建步驟

    Python語(yǔ)言介紹及開(kāi)發(fā)環(huán)境

    Python語(yǔ)言介紹及開(kāi)發(fā)環(huán)境說(shuō)明。
    發(fā)表于 04-26 09:51 ?11次下載

    Python虛擬環(huán)境pipenv的使用

    一般我們創(chuàng)建 Python 項(xiàng)目的時(shí)候都會(huì)創(chuàng)建一個(gè)虛擬環(huán)境,這樣做的好處就是會(huì)把項(xiàng)目環(huán)境和操作系統(tǒng)環(huán)境區(qū)分開(kāi)來(lái),避免把操作系統(tǒng)環(huán)境弄亂。 還有一個(gè)痛點(diǎn)就是我們?cè)?b class='flag-5'>開(kāi)發(fā)環(huán)境開(kāi)發(fā)完成之后,需要把代碼復(fù)制到
    的頭像 發(fā)表于 08-23 10:15 ?1965次閱讀

    Python項(xiàng)目開(kāi)發(fā)實(shí)戰(zhàn)

    Python項(xiàng)目開(kāi)發(fā)實(shí)戰(zhàn)
    發(fā)表于 06-13 14:51 ?2次下載

    pcb仿真能解什么問(wèn)題

    pcb仿真能解什么問(wèn)題?? PCB(Printed Circuit Board,印刷電路板)是一種在電氣和電子設(shè)備中應(yīng)用廣泛的基礎(chǔ)元件。隨著技術(shù)的不斷發(fā)展,PCB設(shè)計(jì)也進(jìn)入了數(shù)字化和智能化的時(shí)代
    的頭像 發(fā)表于 08-29 16:40 ?1805次閱讀