Python開發(fā)還在用virtualenv?不如了解下pipenv...

段子博主

早在之前公司寫博客的時候就發(fā)現(xiàn)舷礼,相比于技術(shù)內(nèi)容鹃彻,大家更愛看我講段子,現(xiàn)在開始寫公眾號了一樣這個結(jié)局妻献≈胫辏總結(jié)知識的文章,沒多少人看育拨,瞎搗鼓手機的谨履、一堆人關(guān)注...你們這么做真的好嗎,是我的技術(shù)文章寫得層次太低熬丧,還是段子講的太有趣笋粟?我趙曰天不服啊锹引!


簡書·喜歡和贊
年老體弱

今天西安下雨很涼快矗钟,吃完飯去理發(fā),老板說你才剪的頭又這么長了嫌变,人閑長頭發(fā)肯定一天沒事兒干吧吨艇。我想說自從搞公眾號開始,已經(jīng)連著一個多月天天2點多睡覺了腾啥。周五晚上休息還跟大學(xué)同學(xué)dota1搞通宵真的受不了东涡,然后坐著理發(fā)睡著了...
一個多月的規(guī)律發(fā)現(xiàn)周六、周日兩天的閱讀量很差倘待,大家放假都想著空調(diào)可樂加西瓜疮跑,啤酒雞翅爆米花,沒有幾個人看公眾號凸舵。所以吧祖娘,以后周六、周日就不更新了啊奄,保證一周五更渐苏。周末的時間騰出來學(xué)一些偏重自己喜好的知識掀潮,希望大家體諒。

又見 Kenneth Reitz
Kenneth Reitz

之前公眾號寫了一篇文章爬蟲新寵requests_html 帶你甄別2019虛假大學(xué)琼富,其中主要是為了介紹模塊requests_html仪吧,這個模塊的作者還開發(fā)了requests模塊,相當(dāng)?shù)南厦肌]錯薯鼠,他就是==Kenneth Reitz==,一個被編程耽誤的攝影師械蹋,哈哈出皇,網(wǎng)上還有他的一些勵志故事,喜歡的朋友可以去搜搜朝蜘,個人比較崇拜他恶迈。那么,今天又要介紹他的另外一個牛13之作谱醇,pipenv

pipenv
介紹

過去大家經(jīng)常使用virtualenv來創(chuàng)建虛擬環(huán)境暇仲,通過pip freeze生成requirements.txt文件,然后通過pip install -r requirements.txt進行項目模塊的管理與安裝副渴。這樣的安裝存在很多問題奈附,比如每次更新模塊后,需要手動的重新生成依賴文件煮剧,等等問題斥滤。但看過今天的文章,你會更喜歡pipenv這款工具勉盅。

Pipenv: Python Development Workflow for Humans
Pipenv試圖解決的問題是多方面的:

  • 您不再需要單獨使用pip和使用virtualenv佑颇。他們一起工作。
  • 管理requirements.txt文件可能會有問題草娜,因此Pipenv使用即將推出的文件Pipfile挑胸,Pipfile.lock而這對于基本用例來說是優(yōu)越的。
  • 哈显兹颍總是隨處可見茬贵。安全。自動暴露安全漏洞移袍。
  • 讓您深入了解您的依賴圖(例如$ pipenv graph)解藻。
  • 通過加載.env文件簡化開發(fā)工作流程。

這哥們所有的庫葡盗,都是for Humans螟左,要不要上升這么高的高度...

pipenv安裝

pip install pipenv即可輕松完成安裝...
之后創(chuàng)建一個我們的項目目錄并進入目錄輸入:pipenv install 創(chuàng)建目錄對應(yīng)的虛擬機。
虛擬機創(chuàng)建目錄:

  • windows : %homepath%.virtualenvs\projectname-隨機碼
  • Linux\Mac: ~/.local/share/virtualenvs/projectname-隨機碼

虛擬機創(chuàng)建完成后,會在項目目錄內(nèi)生成兩個包管理文件文件Pipfile胶背、Pipfile.lock


Pipfile
修改pip源

pipenv shell 進入虛擬機
之后線比急著下載模塊虫啥,我們需要先修改pip源,因為默認的源官方源速度太慢且連接不穩(wěn)定奄妨。網(wǎng)上說的什么命令行修改的,你趁早別用老老實實的進入Pipfile文件內(nèi)部修改苹祟。

修改pip源

source的標(biāo)紅兩個地方需要注意砸抛,我用的是阿里的鏡像,所以verify_ssl無需修改树枫,但是有些鏡像是http協(xié)議的直焙,你需要吧verify_ssl改為false,否則報錯無法使用砂轻。

模塊安裝

我們看到PIPfile中有兩個section標(biāo)簽,一個是dev-packages,一個是packages浦妄,這兩個有什么區(qū)別呢曾雕?
pipenv install flask此時,我們安裝的是packages
pipenv install watchdog --dev 此時庄呈,我們安裝的是dev-packages
這兩者有什么區(qū)別呢蜕煌?比如我們在開發(fā)的過程中會引入一些工具,但這些工具在交付或者上線的時候無需安裝诬留,此時我們可以使用--dev的方式安裝斜纪,而客戶在初始化安裝時使用pipenv install就不會將開發(fā)使用的模塊劑型安裝,針對環(huán)境進行模塊分離文兑,是否很犀利盒刚?

Pipfile.lock

剛才說到了Pipfile,那么Pipfile.lock這個文件又是干嘛的绿贞?
Pipfile.lock是一個json文件因块,詳細記錄了,我們安裝的每一個模塊及模塊的詳細信息樟蠕,如:名稱贮聂、版本、Hash值寨辩。這樣安裝卸載變得更為容易與準(zhǔn)確吓懈。

模塊依賴展示

這個功能是pipenv比較人性化的一個命令行。類似于npm list靡狞,會將我們安裝的包進行依賴樹展示耻警,如下圖:


pipenv依賴樹
項目遷移

我們之前使用的virtualenv,可以遷移至pipenv嗎?
答案是肯定的甘穿,只需要先通過pipenv install -r requirements.txt將原有的模塊進行遷移腮恩,之后使用
同樣的,從pipenv遷移至virtualenv項目温兼,也可以使用pipenv run pip freeze 生成requirements.txt秸滴。

.env介紹

在虛擬機中,我們的環(huán)境信息如何保存呢募判?比如郵箱荡含,入口方法,等等...這時候我們需要使用到.env的文件届垫。

命令集合
column column
pipenv --where 列出本地工程路徑
pipenv --venv 列出虛擬環(huán)境路徑
pipenv --py 列出虛擬環(huán)境的Python可執(zhí)行文件
pipenv install 創(chuàng)建虛擬環(huán)境
pipenv install [moduel] 安裝包
pipenv install [moduel] --dev 安裝包到開發(fā)環(huán)境
pipenv uninstall[module] 卸載包
pipenv uninstall --all 卸載所有包
pipenv graph 查看包依賴
pipenv lock 生成lockfile
pipenv run python [pyfile] 運行py文件
pipenv --rm 刪除虛擬環(huán)境
Flask使用pipenv
.flaskenv

我們在開發(fā)Flask項目時释液,需要創(chuàng)建.flaskenv的文件,用來設(shè)置我們的相關(guān)環(huán)境變量装处,比如:

FLASK_APP=phraces
FLASK_ENV=development

但在使用配置文件之前误债,我們首先需要安裝pip install python-dotenv才能進行配置文件的讀取操作。
當(dāng)我們使用flask run命令啟動flask程序時妄迁,系統(tǒng)會默認去尋找名為app.py的文件進行加載寝蹈,但如果我們的啟動文件是phraces.py時,該如何操作判族?
另外躺盛,當(dāng)我們添加FLASK_ENV=development時,可以監(jiān)控文件變動形帮,進行動態(tài)reload操作槽惫。這就是.flaskenv的用途

pycharm運行pipenv

我們每次通過命令行去啟動flask是否太過麻煩?能否直接通過pycharm來啟動flask的pipenv呢辩撑?當(dāng)然...只需要按照下圖配置即可:


pycharm配置pipenv

pycharm啟動
The End

OK,今天的內(nèi)容就到這里界斜,如果覺得內(nèi)容對你有所幫助,歡迎點擊文章右下角的“在看”合冀。
期待你關(guān)注我的公眾號清風(fēng)Python各薇,如果你覺得不錯,希望能動動手指轉(zhuǎn)發(fā)給你身邊的朋友們君躺。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末峭判,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子棕叫,更是在濱河造成了極大的恐慌林螃,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俺泣,死亡現(xiàn)場離奇詭異疗认,居然都是意外死亡完残,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門横漏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谨设,“玉大人,你說我怎么就攤上這事缎浇≡穑” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵素跺,是天一觀的道長鹏秋。 經(jīng)常有香客問我,道長亡笑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任横朋,我火速辦了婚禮仑乌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘琴锭。我一直安慰自己晰甚,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布决帖。 她就那樣靜靜地躺著厕九,像睡著了一般。 火紅的嫁衣襯著肌膚如雪地回。 梳的紋絲不亂的頭發(fā)上扁远,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天,我揣著相機與錄音刻像,去河邊找鬼畅买。 笑死,一個胖子當(dāng)著我的面吹牛细睡,可吹牛的內(nèi)容都是我干的谷羞。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼溜徙,長吁一口氣:“原來是場噩夢啊……” “哼湃缎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蠢壹,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤嗓违,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后知残,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體靠瞎,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡比庄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了乏盐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片佳窑。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖父能,靈堂內(nèi)的尸體忽然破棺而出神凑,到底是詐尸還是另有隱情,我是刑警寧澤何吝,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布溉委,位于F島的核電站,受9級特大地震影響爱榕,放射性物質(zhì)發(fā)生泄漏瓣喊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一黔酥、第九天 我趴在偏房一處隱蔽的房頂上張望藻三。 院中可真熱鬧,春花似錦跪者、人聲如沸棵帽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽逗概。三九已至,卻和暖如春忘衍,著一層夾襖步出監(jiān)牢的瞬間逾苫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工枚钓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留隶垮,地道東北人。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓秘噪,卻偏偏與公主長得像狸吞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子指煎,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容