日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

pipfile和pipfile.lock、virtualenv、pipenv、pip

發(fā)布時(shí)間:2025/4/5 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pipfile和pipfile.lock、virtualenv、pipenv、pip 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我們先說(shuō)說(shuō)virtualenv怎么用

  • 首先,我們用pip安裝virtualenv:
  • $ pip3 install virtualenv
  • 然后,
    第一步,創(chuàng)建目錄(并且移到當(dāng)前項(xiàng)目目錄下):
  • $ mkdir myproject $ cd myproject/ $
  • 第二步,創(chuàng)建一個(gè)獨(dú)立的Python運(yùn)行環(huán)境,命名為venv:
  • $ virtualenv --no-site-packages venv Using base prefix '/usr/local/.../Python.framework/Versions/3.4' New python executable in venv/bin/python3.4 Also creating executable in venv/bin/python Installing setuptools, pip, wheel...done.

    命令virtualenv就可以創(chuàng)建一個(gè)獨(dú)立的Python運(yùn)行環(huán)境。
    參數(shù)--no-site-packages,使已經(jīng)安裝到系統(tǒng)Python環(huán)境中的所有第三方包都不會(huì)復(fù)制過(guò)來(lái),這樣,我們就得到了一個(gè)不帶任何第三方包的“干凈”的Python運(yùn)行環(huán)境。

  • 新建的Python環(huán)境被放到當(dāng)前目錄下的venv目錄。有了venv這個(gè)Python環(huán)境,可以用source進(jìn)入該環(huán)境:
  • Mac:myproject michael$ source venv/bin/activate (venv)Mac:myproject michael$

    注意到命令提示符變了,有個(gè)(venv)前綴,表示當(dāng)前環(huán)境是一個(gè)名為venv的Python環(huán)境。

  • 下面正常安裝各種第三方包,并運(yùn)行python命令:
  • (venv)Mac:myproject michael$ pip install jinja2 ... Successfully installed jinja2-2.7.3 markupsafe-0.23 (venv)Mac:myproject michael$ python myapp.py ...
  • 在venv環(huán)境下,用pip安裝的包都被安裝到venv這個(gè)環(huán)境下,系統(tǒng)Python環(huán)境不受任何影響。也就是說(shuō),venv環(huán)境是專(zhuān)門(mén)針對(duì)myproject這個(gè)應(yīng)用創(chuàng)建的。

  • 退出當(dāng)前的venv環(huán)境,使用deactivate命令:

  • (venv)Mac:myproject michael$ deactivate Mac:myproject michael$
  • 此時(shí)就回到了正常的環(huán)境,現(xiàn)在pip或python均是在系統(tǒng)Python環(huán)境下執(zhí)行。
  • 完全可以針對(duì)每個(gè)應(yīng)用創(chuàng)建獨(dú)立的Python運(yùn)行環(huán)境,這樣就可以對(duì)每個(gè)應(yīng)用的Python環(huán)境進(jìn)行隔離。

    virtualenv是如何創(chuàng)建“獨(dú)立”的Python運(yùn)行環(huán)境的呢?原理很簡(jiǎn)單,就是把系統(tǒng)Python復(fù)制一份到virtualenv的環(huán)境,用命令source venv/bin/activate進(jìn)入一個(gè)virtualenv環(huán)境時(shí),virtualenv會(huì)修改相關(guān)環(huán)境變量,讓命令python和pip均指向當(dāng)前的virtualenv環(huán)境。




    這里說(shuō)pipenv

    在Python打包的上下??文中,似乎Pipfile / Pipfile.lock旨在替換requirements.txt。
    Pipenv是一個(gè)包和虛擬環(huán)境管理工具,它使用Pipfile和Pipfile.lock文件來(lái)實(shí)現(xiàn)這些目標(biāo)。具體來(lái)說(shuō)他是pip、pipfile、virtualenv的結(jié)合體。讓包安裝、包依賴(lài)管理、和虛擬環(huán)境管理更加方便,
    Pipenv以一種默認(rèn)的標(biāo)準(zhǔn)方式為您處理虛擬環(huán)境(不再需要激活和停用)。下面是一些幫助您入門(mén)的基礎(chǔ)知識(shí),請(qǐng)?jiān)L問(wèn)pipenv網(wǎng)站了解更多信息。

    入門(mén)

    使用pip安裝pipenv(會(huì)自動(dòng)安裝在我們的python的bin目錄下)

    $ pip install pipenv

    用下面的命令檢查pipenv是否已經(jīng)安裝:

    $ pipenv --version

    虛擬環(huán)境通常需要用Virtualenv來(lái)創(chuàng)建,因?yàn)閜ipenv集成了virtualenv,我們就使用pipenv更方便的管理虛擬環(huán)境和環(huán)境依賴(lài)包
    在自己想創(chuàng)建的位置創(chuàng)建一個(gè)helloflask項(xiàng)目目錄(示例文件夾)

  • 首先要確保我們當(dāng)前的工作目錄在示例程序項(xiàng)目(helloflask)的根目錄
  • 然后使用pipenv install命令為當(dāng)前的項(xiàng)目創(chuàng)建虛擬環(huán)境

    如果想指定創(chuàng)建的虛擬環(huán)境的Python版本,可以使用下面的命令。
  • pipenv --python 3.6 #指定使用Python3.6的虛擬環(huán)境 pipenv --two #使用系統(tǒng)的Python2在創(chuàng)建虛擬環(huán)境 pipenv --three #使用系統(tǒng)的Python3在創(chuàng)建虛擬環(huán)境#注意:以上三個(gè)參數(shù)只能單獨(dú)使用。它們還具有破壞性,會(huì)刪除當(dāng)前的虛擬環(huán)境,然后用適當(dāng)版本的虛擬環(huán)境替代。當(dāng)給定了一個(gè)Python版本的時(shí)候,Pipenv會(huì)自動(dòng)掃描系統(tǒng)中能夠匹配給定的Python版本的Python解釋器,沒(méi)指定版本時(shí),使用系統(tǒng)默認(rèn)的Python版本。
  • 執(zhí)行完命令,項(xiàng)目文件夾會(huì)生成兩個(gè)文件,Pipfile和Pipfile.lock。(如果命令執(zhí)行前項(xiàng)目目錄中不存在 Pipfile 文件,該命令將會(huì)創(chuàng)建一個(gè) Pipfile 文件。如果已經(jīng)有Pipfile 文件已經(jīng)存在,則會(huì)根據(jù)這個(gè)Pipfile生成虛擬環(huán)境。)
  • 默認(rèn)情況下,pipenv會(huì)統(tǒng)一管理所有虛擬環(huán)境,在Linux或macOS系統(tǒng)中,由上圖運(yùn)行可得,會(huì)在 ~/.local/share/virtualenvs/目錄下創(chuàng)建,在windows中,虛擬環(huán)境文件夾會(huì)在C:\Users\Administrator\.virtualenvs\目錄下創(chuàng)建。虛擬環(huán)境目錄名稱(chēng)的形式為“當(dāng)前項(xiàng)目目錄名+一串隨機(jī)字符”,比如helloflask-1RVeSQmm

    如果你想在項(xiàng)目目錄內(nèi)創(chuàng)建虛擬環(huán)境文件夾,可以設(shè)置環(huán)境變量PIPENV_VENV_IN_PROJECT,這時(shí)名為.venv的虛擬環(huán)境目錄將在項(xiàng)目根目錄被創(chuàng)建。

    Profile內(nèi)容解析

    打開(kāi)Profile文件,可以看到如下內(nèi)容。

    [[source]] name = "pypi" url = "https://pypi.org/simple" verify_ssl = true[dev-packages][packages][requires] python_version = "3.7"

    source用來(lái)設(shè)置倉(cāng)庫(kù)地址,即從哪下載虛擬環(huán)境所需要的包
    packages用來(lái)指定項(xiàng)目依賴(lài)的包,即你安裝了的包
    dev-packages用來(lái)指定開(kāi)發(fā)環(huán)境需要的包,這類(lèi)包只用于開(kāi)發(fā)過(guò)程,不用與生產(chǎn)環(huán)境,比如單元測(cè)試相關(guān)的包,只在開(kāi)發(fā)階段有用,這樣分開(kāi)便于管理。
    requires 中指定目標(biāo)Python版本

    Pipfile.lock文件

    該P(yáng)ipfile.lock是用來(lái)規(guī)定的基礎(chǔ)上,目前在包裝Pipfile,應(yīng)該使用那些特定版本,避免依賴(lài)于對(duì)方破壞你的項(xiàng)目的依賴(lài)關(guān)系樹(shù)自動(dòng)升級(jí)包的風(fēng)險(xiǎn)。該文件用來(lái)保證包的完整性。記住,任何情況下不要手動(dòng)修改該文件!

    您可以使用$ pipenv lock鎖定當(dāng)前安裝的軟件包
    項(xiàng)目提交時(shí),可將Pipfile 文件和Pipfile.lock文件一并提交,給其他開(kāi)發(fā)人員克隆下載,他們可以根據(jù)此Pipfile文件運(yùn)行命令pipenv install生成自己的虛擬環(huán)境。
    一個(gè)好消息是,PyCharm2018.2開(kāi)始支持pipenv了。我們也可以在創(chuàng)建項(xiàng)目時(shí)使用Pipenv,如圖

    4. 在單獨(dú)使用Virtualenv時(shí),我們通常顯式地激活虛擬環(huán)境,在pipenv中,可以使用pipenv shell命令顯式地激活虛擬環(huán)境

    5. pipenv會(huì)啟動(dòng)一個(gè)激活虛擬環(huán)境的子shell,現(xiàn)在你會(huì)發(fā)現(xiàn)命令行提示符前添加了虛擬環(huán)境名“(虛擬環(huán)境名稱(chēng))$”(我這里只顯示了個(gè)項(xiàng)目名稱(chēng))

    6. 這說(shuō)明我們已經(jīng)成功激活了虛擬環(huán)境,現(xiàn)在你的所有命令都會(huì)在虛擬環(huán)境中執(zhí)行,當(dāng)你需要退出虛擬環(huán)境時(shí),使用exit命令

    退出虛擬環(huán)境后,所有命令都是在本地的python解釋器上執(zhí)行了
    7.除了顯式地激活虛擬環(huán)境,pipenv還提供了pipenv run命令,這個(gè)命令允許你不顯式地激活虛擬環(huán)境,即可在當(dāng)前項(xiàng)目的虛擬環(huán)境中執(zhí)行命令,比如:

    $ pipenv run python hello.py

    這里使用的是虛擬環(huán)境中的python解釋器,而不是全局的python解釋器。

    總結(jié):

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

    pipenv shell    進(jìn)入虛擬環(huán)境(如果不存在,則創(chuàng)建并進(jìn)入虛擬環(huán)境)

    pipenv install flask   安裝模塊

    pipenv uninstall flask 卸載模塊

    pipenv graph     查看模塊之間的依賴(lài)關(guān)系

    pip list        查看虛擬環(huán)境所有模塊

    exit          退出虛擬環(huán)境

    總結(jié)

    以上是生活随笔為你收集整理的pipfile和pipfile.lock、virtualenv、pipenv、pip的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。