[工具&筆記]pipenv

參考使用pipenv管理你的項目

關(guān)系

    1. pip
      管理和安裝python的第三方包。
    1. virtualenv
      獨立的虛擬環(huán)境,可避免各個python應(yīng)用之間互相影響(如對包的版本依賴不同)。
    1. pipenv
      高級的包管理器。
      對pip和virtualenv的功能做了封裝,不必再單獨使用兩者。除此之外,使用Pipfile和Pipfile.lock兩個文件描述了環(huán)境中的包依賴關(guān)系,比requirements.txt文件更清晰、更有結(jié)構(gòu)。等等。

pip相關(guān)


    1. 默認的源是https://pypi.python.org/simple。然而由于網(wǎng)速過慢,通常會選擇阿里云源(http://mirrors.aliyun.com/pypi/simple/)或豆瓣源(http://pypi.douban.com/simple)。
      在文件~/.pip/pip.conf中:
      [global] index-url = http://mirrors.aliyun.com/pypi/simple/
      [install] trusted-host = mirrors.aliyun.com
    1. 多個python版本在同一環(huán)境
      以一個環(huán)境中有Python2和Python3兩個版本為例。
      正常情況下,在目錄/usr/local/bin/會有pippip3兩個文件(或類似名稱文件)。具體位置可使用which命令獲取。
      如果兩個文件的內(nèi)容正確,那使用pippip3命令即可進行區(qū)分。
      怎么區(qū)分是否正確?查看文件的首行。
      我本地的pip文件首行是:
      #!/usr/bin/python
      而pip3的首行是:
      #!/usr/local/opt/python3/bin/python3.6
      這句話的目的是為了指出,當(dāng)該文件以腳本方式運行時,所使用的python解釋器。
      具體的解釋器位置,同樣可使用which命令獲取。
      也可通過以下命令來查看:
      pip -V
      然而,其實可直接使用以下命令指定使用哪個python版本以及對應(yīng)的pip:
      sudo python -m pip install xxx

pipenv命令

    1. pipenv install
      創(chuàng)建虛擬環(huán)境,安裝包,并加入Pipfile。
    1. pipenv shell
      使用虛擬環(huán)境,生成一個shell。
    1. pipenv lock
      生成Pipfile.lock文件。
    1. pipenv graph
      樹形展示當(dāng)前虛擬環(huán)境中,各個已安裝包的依賴關(guān)系。
    1. exit
      退出虛擬環(huán)境。
    1. pipenv run
      使用虛擬環(huán)境,執(zhí)行跟著的命令。
    1. pipenv uninstall
      install反過來。
    1. pipenv sync
      安裝Pipfile.lock中表明的所有包。
    1. pipenv clean
      卸載所有不在Pipfile.lock中表明的包。

一些問題

    1. 整體不穩(wěn)定
      目前(2018.03),基本每天都會發(fā)一個小版本,距離完全穩(wěn)定還有一定距離。
    1. 源的問題
      如果不使用默認的官方pip源,那就會經(jīng)常出現(xiàn)各種莫名其妙的問題(涉及pipenv lock命令),在倉庫的issues里也經(jīng)??吹较嚓P(guān)問題,由于其版本更新過快,我也不太好確認是已經(jīng)改好了,還是沒改好,或者就是我本地環(huán)境的問題(暫未深究)。我暫時提了一個issue:using different source achieve different result when execute pipenv lock。

3月14日補充

上面那個問題我最后發(fā)現(xiàn)是pip源沒配置好,當(dāng)使用的源的url為 http://mirrors.aliyun.com/pypi/simple/ 時,需要設(shè)置 verify_ssl=false 。
隨后我發(fā)現(xiàn),不管是豆瓣源還是阿里云源現(xiàn)在都可通過https訪問,也就是說在pip.conf文件中把url從http換成https后,可以不加trusted-host了~

目前來看,lock功能運行非常得慢?。?!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容