Pipenv項目化你的python應用


Pipenv

什么是pipenv

Pipenv is a production-ready tool that aims to bring the best of all packaging worlds to the Python world. It harnesses Pipfile, pip, and virtualenv into one single command.

使用pipenv進行包管理來開發python項目,pipenv提供了功能:進行第三方packages安裝,生成項目包依賴文件及在項目開發過程中對依賴包的curd操作的版本記錄和隔離出項目python虛擬環境。

pipenv大致工作模式:

  • 基於項目目錄環境,即要進入項目根目錄下。
  • 在項目目錄下,執行pipenv才可以。pipenv依賴項目目錄名尋找或創建虛擬環境,依賴項目目錄下的Pipfile和Pipfile.lock來進行依賴安裝和pypi源的地址信息。
  • 然后pipenv提供進入虛擬環境和通過虛擬環境運行python程序。

Tips:我們經常說到依賴管理,其實主要是發布library庫依賴和項目應用依賴,分別對應的是setup.py 與 Pipfile(或者requirements.txt)。對於我們初學者很少會發布library庫到pypi,所以庫依賴我們很少接觸。最多的還是利用github發布項目應用,就使用pip或pipenv來生成項目包依賴文件。

博文圖片掛了臨時解決辦法

安裝pipenv

pip install --user pipenv 這里推薦就安裝到user目錄下。

pipenv用法

常用命令

  1. pipenv shell 如果當前目錄還沒有通過pipenv初始化過,那么pipenv shell將類似pipenv install初始化當前項目;如果當前目錄已經初始化過有pipfile,那么將通過shell加載虛擬環境,進入虛擬環境。
  2. pipenv --rm 刪除當前項目目錄額虛擬環境,但是不會刪除Pipfile 和 Pipfile.lock.
  3. pipenv install third-package 使用pipenv安裝第三方python包到虛擬環境
  4. pipenv --hellp 查看幫助文檔
  5. pipenv --venv 查看當前項目的虛擬環境位置
  6. pipenv install --python 3.7.0 初始化時指定使用的python版本,推薦都要明確指定,不然你的項目可能使用了錯誤的python版本。
  7. pipenv --envs 打印當前環境pipenv的環境變量
  8. pipenv --py 打印當前項目使用的python信息
  9. pipenv install third-package --dev 將包安裝設置為開發依賴
  10. pipenv graph 打印依賴樹圖
  11. pinenv run commands 使用虛擬環境下運行命令

pipenv命令參考

使用pipenv開發項目

兩種大的情況

初始化項目

  • 對於初始化的項目,使用pipenv 初始化項目目錄,初始化參數要指定好使用的python版本,如參數 --python 3.6 后面的版本好要時當前環境中已經安裝了的python版本。如果只是提供參數 --three 或者 --two 分別表示使用py3 或 py2 ,即時當前環境的python3 和 pythhon2 具體小版本號這需要執行查看版本來確定了。也可以從初始化后的Pipfile查看requests.python_version。

  • 具體邏輯如下:

The current rule works like this (if pyenv is not present):
     --three is essentially a shorthand for --python=3 (and --two is --python=2).
     If --python=X is specified, look for python{X} in PATH (if X looks like a version number).
     Otherwise, if requires.python_version = Y look for python{Y} in PATH
     Otherwise use whatever Python Pipenv is on (sys.executable).

  • 使用pipenv初始化項目目錄,會創建一個指定的python版本的一個虛擬環境。以后通過pipenv安裝的package都會安裝到該虛擬環境中。使用pipenv還會將安裝的信息記錄到Pipfile中。
  • 需要注意的就是pipenv的運行需要在對應的項目目錄下,也就是在pipfile文件同目錄下進行操作,這樣才能自動。要使用注意

已有項目

  • 如果項目開始沒有使用pipenv進行依賴記錄。如果是requirements.txt,然后重新通過pipenv來管理項目依賴,那依賴packages的安裝,則需要pipenv從requirements.txt讀取並安裝最后重新生成依賴到Pipfile文件中,並將三方包都安裝到了項目的虛擬環境中,命令:pipenv install -r ./requirements.txt。
  • 如果就是Pipfile,則從pipfile中安裝依賴。
  • 對應當前沒有的版本,如果系統安裝了pyenv,會提示通過pyenv安裝需要的python版本。

pipenv 結合 pyenv

首先,要安裝pyenv
然后在通過pipenv install --python 3.7.0 初始化項目並指定python版本,如果該python當前系統沒有,那么pipenv會自動人性化的調用pyenv安裝3.7.0版本。

大致就這樣。

參考文檔


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM