成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Pipenv – 超好用的 Python 包管理工具

tunny / 1387人閱讀

摘要:安全,廣泛地使用校驗(yàn),能夠自動(dòng)曝露安全漏洞。部分用來(lái)設(shè)置倉(cāng)庫(kù)地址,部分用來(lái)指定項(xiàng)目依賴(lài)的包,部分用來(lái)指定開(kāi)發(fā)環(huán)境需要的包,這樣分開(kāi)便于管理。參考鏈接新款虛擬環(huán)境工具詳解筆記使用指南官方推薦的包管理工具

pipenv 是什么

pipenv 是 python 官方推薦的包管理工具,集成了 virtualenv、pyenv 和 pip 三者的功能于一身,類(lèi)似于 php 中的 composer。

我們知道,為了方便管理 python 的虛擬環(huán)境和庫(kù),通常使用較多的是 virtualenv 、pyenv 和 pip,但是他們不夠好用或者說(shuō)不夠偷懶。于是 requests 的作者 Kenneth Reitz 開(kāi)發(fā)了用于創(chuàng)建和管理 python 虛擬環(huán)境的工具 —- pipenv。

它能夠自動(dòng)為項(xiàng)目創(chuàng)建和管理虛擬環(huán)境,從 Pipfile 文件中添加或者刪除包,同時(shí)生成 Pipfile.lock 文件來(lái)鎖定安裝包的版本和依賴(lài)信息,避免構(gòu)建錯(cuò)誤。

pipenv 主要解決了以下問(wèn)題:

不用再多帶帶使用 virtualenv、pyenv 和 pip 了,現(xiàn)在它們結(jié)合到了一起。

不用再維護(hù) requirement.txt 了,使用 Pipfile 和 Pipfile.lock 來(lái)代替。

可以在開(kāi)發(fā)環(huán)境使用多個(gè) python 版本。

在安裝的 pyenv 條件下,可以自動(dòng)安裝需要的 python 版本。

安全,廣泛地使用 Hash 校驗(yàn),能夠自動(dòng)曝露安全漏洞。

隨時(shí)查看圖形化的依賴(lài)關(guān)系。

安裝 pipenv

由于我的開(kāi)發(fā)環(huán)境一直都是 Mac 筆記本,所以這里只介紹在 Mac 環(huán)境如何安裝好了。

使用 pip 安裝
$ pip install --user pipenv

這個(gè)命令在用戶級(jí)別(非系統(tǒng)全局)下安裝 pipenv。如果安裝后 shell 提示找不到 pipenv 命令,你需要添加當(dāng)前 Python 用戶主目錄的 bin 目錄到 PATH 環(huán)境變量。如果你不知道 Python 用戶主目錄在哪里,用下面的命令來(lái)查看:

$ python -m site --user-base

你會(huì)看到類(lèi)似下面的輸出

/Users/liyafeng/Library/Python/3.6
使用 brew 安裝

Mac 下使用 brew 安裝軟件應(yīng)該是最方便的了,推薦使用:

brew install pipenv

升級(jí) pipenv:

brew upgrade pipenv
shell 自動(dòng)補(bǔ)齊

Linux or Mac 環(huán)境下,bash下如果能自動(dòng)命令補(bǔ)全豈不是更好?請(qǐng)把如下語(yǔ)句追加到.bashrc或者.zshrc即可:

eval "$(pipenv --completion)"
常用命令

pipenv 具有的選項(xiàng):

$ pipenv
Usage: pipenv [OPTIONS] COMMAND [ARGS]...

Options:
  --where          顯示項(xiàng)目文件所在路徑
  --venv           顯示虛擬環(huán)境實(shí)際文件所在路徑
  --py             顯示虛擬環(huán)境Python解釋器所在路徑
  --envs           顯示虛擬環(huán)境的選項(xiàng)變量
  --rm             刪除虛擬環(huán)境
  --bare           最小化輸出
  --completion     完整輸出
  --man            顯示幫助頁(yè)面
  --three / --two  使用Python 3/2創(chuàng)建虛擬環(huán)境(注意本機(jī)已安裝的Python版本)
  --python TEXT    指定某個(gè)Python版本作為虛擬環(huán)境的安裝源
  --site-packages  附帶安裝原Python解釋器中的第三方庫(kù)
  --jumbotron      An easter egg, effectively.
  --version        版本信息
  -h, --help       幫助信息

pipenv 可使用的命令參數(shù):

Commands:
  check      檢查安全漏洞
  graph      顯示當(dāng)前依賴(lài)關(guān)系圖信息
  install    安裝虛擬環(huán)境或者第三方庫(kù)
  lock       鎖定并生成Pipfile.lock文件
  open       在編輯器中查看一個(gè)庫(kù)
  run        在虛擬環(huán)境中運(yùn)行命令
  shell      進(jìn)入虛擬環(huán)境
  uninstall  卸載一個(gè)庫(kù)
  update     卸載當(dāng)前所有的包,并安裝它們的最新版本

一些例子:

Usage Examples:
   Create a new project using Python 3.6, specifically:
   $ pipenv --python 3.6

   Install all dependencies for a project (including dev):
   $ pipenv install --dev

   Create a lockfile containing pre-releases:
   $ pipenv lock --pre

   Show a graph of your installed dependencies:
   $ pipenv graph

   Check your installed dependencies for security vulnerabilities:
   $ pipenv check

   Install a local setup.py into your virtual environment/Pipfile:
   $ pipenv install -e .

   Use a lower-level pip command:
   $ pipenv run pip freeze
pipenv 使用過(guò)程 創(chuàng)建環(huán)境,安裝指定 python 的版本信息:
mkdir new_env & cd new_env
pipenv install     // pipenv install --three

如果指定了 --two 或者 --three 選項(xiàng)參數(shù),則會(huì)使用 python2 或者 python3 的版本安裝,否則將使用默認(rèn)的 python 版本來(lái)安裝。當(dāng)然也可以指定準(zhǔn)確的版本信息:

$ pipenv install --python 3
$ pipenv install --python 3.6
$ pipenv install --python 2.7.14

pipenv 會(huì)自動(dòng)掃描系統(tǒng)尋找合適的版本信息,如果找不到的話,同時(shí)又安裝了 pyenv 的話,則會(huì)自動(dòng)調(diào)用 pyenv 下載對(duì)應(yīng)版本的 python, 否則會(huì)報(bào)錯(cuò)。

這時(shí)候在當(dāng)前 new_env 環(huán)境下生成 PipfilePipfile.lock 兩個(gè)環(huán)境初始化文件。

進(jìn)入|退出環(huán)境:

進(jìn)入環(huán)境:

pipenv shell 

退出環(huán)境:

exit //或者 ctrl+d
安裝第三方包:

這里我們測(cè)試安裝 urllib3 包好了:

pipenv install urllib3

此時(shí),Pipfile 里有最新安裝的包文件的信息,如名稱(chēng)、版本等。用來(lái)在重新安裝項(xiàng)目依賴(lài)或與他人共享項(xiàng)目時(shí),你可以用 Pipfile 來(lái)跟蹤項(xiàng)目依賴(lài)。

Pipfile 是用來(lái)替代原來(lái)的 requirements.txt 的,內(nèi)容類(lèi)似下面這樣。source 部分用來(lái)設(shè)置倉(cāng)庫(kù)地址,packages 部分用來(lái)指定項(xiàng)目依賴(lài)的包,dev-packages 部分用來(lái)指定開(kāi)發(fā)環(huán)境需要的包,這樣分開(kāi)便于管理。

$ cat Pipfile
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
"urllib3" = "*"

[dev-packages]

[requires]
python_version = "3.6"

Pipfile.lock 則包含你的系統(tǒng)信息,所有已安裝包的依賴(lài)包及其版本信息,以及所有安裝包及其依賴(lài)包的 Hash 校驗(yàn)信息。

$ Pipfile.lock
{
    "_meta": {
        "hash": {
            "sha256": "af58f3510cb613d4d9241128f9a0ceb9bb936ad907543e23ad8317011dcb6715"
        },
        "pipfile-spec": 6,
        "requires": {
            "python_version": "3.6"
        },
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.org/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {                
         "urllib3": {
            "hashes": [
                "sha256:a68ac5e15e76e7e5dd2b8f94007233e01effe3e50e8daddf69acfd81cb686baf",
                "sha256:b5725a0bd4ba422ab0e66e89e030c806576753ea3ee08554382c14e685d117b5"
            ],
            "index": "pypi",
            "version": "==1.23"
        }
    },
    "develop": {}
}

現(xiàn)在安裝另一個(gè)包,再次查看這兩個(gè)文件的內(nèi)容。你會(huì)發(fā)現(xiàn) Pipfile 現(xiàn)在包含兩個(gè)安裝包了,Pipfile.lock 也包含了所有已安裝包的依賴(lài)包及其版本信息,以及所有安裝包及其依賴(lài)包的 Hash 校驗(yàn)信息。每次你安裝新的依賴(lài)包,這兩個(gè)文件都會(huì)自動(dòng)更新。

安裝指定版本包:
pipenv install urllib3==1.22
安裝開(kāi)發(fā)環(huán)境下的包:

--dev 表示包括 Pipfile 的 dev-packages 中的依賴(lài)。

pipenv install httpie --dev
卸載第三方包:
pipenv uninstall urllib3 //或者 pipenv uninstall --all
更新安裝包:
pipenv update urllib3

更新所有包:

pipenv update 

這個(gè)命令會(huì)刪除所有軟件包然后重新安裝最新的版本。

查看虛擬環(huán)境目錄:
$ pipenv --venv
/Users/liyafeng/.local/share/virtualenvs/new_env-UVLdq9CB

最后的虛擬環(huán)境目錄是以當(dāng)前環(huán)境 new_env 作為目錄開(kāi)頭的。

查看項(xiàng)目根目錄:
$ pipenv --where
/Users/liyafeng/Documents/www/pythondemo/new_env
檢查軟件包的完整性

你是否擔(dān)心已安裝的軟件包有沒(méi)有安全漏洞?沒(méi)關(guān)系,pipenv 可以幫你檢查,運(yùn)行下面的命令:

$  pipenv check
Checking PEP 508 requirements…
Passed!
Checking installed package safety…
All good!

上面的命令根據(jù) Pipfile 里的 PEP 508 標(biāo)記檢查安全漏洞。

查看依賴(lài)樹(shù)
$ pipenv graph
httpie==0.9.9
  - Pygments [required: >=2.1.3, installed: 2.2.0]
  - requests [required: >=2.11.0, installed: 2.19.1]
    - certifi [required: >=2017.4.17, installed: 2018.4.16]
    - chardet [required: <3.1.0,>=3.0.2, installed: 3.0.4]
    - idna [required: <2.8,>=2.5, installed: 2.7]
    - urllib3 [required: >=1.21.1,<1.24, installed: 1.23]
鎖定版本

更新 lock 文件鎖定當(dāng)前環(huán)境的依賴(lài)版本

pipenv lock
環(huán)境變量管理

如果你開(kāi)發(fā)調(diào)試時(shí)需要配一堆環(huán)境變量,可以寫(xiě)到 .env 文件中,在 pipenv shell 進(jìn)入虛擬環(huán)境時(shí),它會(huì)幫你把這些環(huán)境變量加載好,非常方便。

例如寫(xiě)一個(gè) .env 文件:

echo "FOO=hello foo" > .env

之后 pipenv shell 進(jìn)入虛擬環(huán)境,echo $FOO 就能看環(huán)境變量的值 hello foo 已經(jīng)設(shè)置好了。

參考鏈接

https://docs.pipenv.org/

pipenv 新款 Python 虛擬環(huán)境工具詳解

pipenv 筆記

pipenv 使用指南

Pipenv – 官方推薦的 Python 包管理工具

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/41913.html

相關(guān)文章

  • 快速入門(mén)Python 最新最流行pipenv虛擬環(huán)境

    摘要:的把最新型最先進(jìn)的虛擬環(huán)境吵得火熱。進(jìn)入后,你會(huì)發(fā)現(xiàn)用也是能生效的。但是注意進(jìn)入環(huán)境后千萬(wàn)不要用退出,而應(yīng)該用退出。最佳解決方案是因?yàn)檫@種在其他地方也常見(jiàn),一般都是沒(méi)有在環(huán)境里安裝的問(wèn)題。 2018的PyCon把最新型最先進(jìn)的Python虛擬環(huán)境pipenv吵得火熱。看了下介紹感覺(jué)真的很好用,它在virtualenv的基礎(chǔ)上包裝了一些更便捷的功能,解決了很多很多virtualenv欠缺...

    roundstones 評(píng)論0 收藏0
  • 「Odoo 基礎(chǔ)教程系列」第一篇——環(huán)境準(zhǔn)備

    摘要:安裝好后,在中執(zhí)行查看版本信息,應(yīng)該會(huì)看到輸出如下信息版本號(hào)可能會(huì)不同如果提示未找到,則需要手動(dòng)將用戶基礎(chǔ)目錄下的添加到中。相關(guān)文章基礎(chǔ)教程系列第篇開(kāi)天坑啦 showImg(https://segmentfault.com/img/bV4GZu?w=1262&h=911); 之前說(shuō)好的 「Odoo 基礎(chǔ)教程系列」終于來(lái)了(撒花)~剛過(guò)完年重新投入到工作中,一下子事情有點(diǎn)多都要忙不過(guò)來(lái)了...

    szysky 評(píng)論0 收藏0
  • pipenv 更優(yōu)雅管理python開(kāi)發(fā)環(huán)境

    摘要:可通過(guò)以下命令生成文件運(yùn)行虛擬環(huán)境可使用以下命令來(lái)運(yùn)行項(xiàng)目或者啟動(dòng)虛擬環(huán)境的環(huán)境直接運(yùn)行并不會(huì)出現(xiàn)命令行,是應(yīng)為沒(méi)有配置環(huán)境變量。 本文最早發(fā)布與個(gè)人博客:http://www.pylixm.cc 最近??吹絧ipenv這個(gè)管理工具,今天有時(shí)間查了下,是 Kennethreitz 大神的作品,看了下github的倉(cāng)庫(kù),是2017年1月份創(chuàng)建的,僅僅一年的時(shí)間變獲得了7k+的收藏,最新一...

    dockerclub 評(píng)論0 收藏0
  • 使用pipenv代替virtualenv管理python

    摘要:前言第一次接觸到是因?yàn)榭吹蕉鱾ゴ笊竦氖褂霉芾砟愕捻?xiàng)目,之前可能和大家的選擇類(lèi)似使用或者來(lái)管理的包環(huán)境。是針對(duì)的包的多版本管理,通過(guò)將包安裝到一個(gè)模塊來(lái)作為的包虛擬環(huán)境,通過(guò)切換目錄來(lái)實(shí)現(xiàn)不同包環(huán)境間的切換。 前言 第一次接觸到 pipenv 是因?yàn)榭吹紷董明偉大神的《使用pipenv管理你的項(xiàng)目》,之前可能和大家的選擇類(lèi)似使用 virtualenv 或者 pyenv 來(lái)管理 pyth...

    whidy 評(píng)論0 收藏0
  • 比virtuslenv更好用虛擬環(huán)境pipenv

    摘要:提示如果你對(duì)的用法以及虛擬環(huán)境的概念不熟悉的話,可以通過(guò)專(zhuān)欄的舊文出發(fā)之旅進(jìn)行簡(jiǎn)單的認(rèn)識(shí)。為什么使用會(huì)自動(dòng)幫你管理虛擬環(huán)境和依賴(lài)文件,并且提供了一系列命令和選項(xiàng)來(lái)幫助你實(shí)現(xiàn)各種依賴(lài)和環(huán)境管理相關(guān)的操作。 什么是Pipenv Pipenv是Kenneth Reitz在2017年1月發(fā)布的Python依賴(lài)管理工具,現(xiàn)在由PyPA維護(hù)。你可以把它看做是pip和virtualenv的組合體,而...

    wing324 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<