Python虛擬環境


一、虛擬環境介紹

  • 主要工具virtualenvpipenv
  • 為給不同的工程創建互相獨立的工程
  • 每個功能都有自己的依賴包,與工程無關
  • 虛擬環境中同一個包可以有不同的版本
  • 虛擬環境的數量沒有限制

二、virtualenv的安裝和應用

環境安裝(windows)

  1. pip 安裝 virtualenv
  2. pip 安裝虛擬環境管理包 virtualenvwrapper-win
  3. 創建一個存放虛擬環境的家目錄(建議命名.env或.virtualenv)
  4. 配置環境變量(變量名:WORK_HOME,路徑是創建的虛擬環境家目錄)

virtualenv的使用命令

  • workon : 列出所有的虛擬環境
  • workon [name] : 進入指定的虛擬環境
  • deactivate :退出當前的虛擬環境
  • mkvirtualenv [name] : 創建虛擬環境
  • rmvirtualenv [name] : 傳出虛擬環境
  • 安裝第三方庫 :進入虛擬環境 pip install

requirements.txt 文件

  • requirements.txt文件,里面會記錄當前項目的所有依賴包及版本號,其作用是用來在另一個環境上重新構建項目所需要的運行環境依賴

  • 導出當前環境的requirements.txt

    • 項目在虛擬環境中就導出虛擬環境的配置
    • 項目在本地環境也可以導出本地環境的配置
    • pip freeze >requirements.txt
  • 使用requirements.txt恢復環境

    • 項目在虛擬環境中就安裝到虛擬環境里
    • 項目在本地環境中就安裝到本地環境里
    • 將文件導入到新項中執行命令
    • pip install -r requirements.txt

三、pipenv的安裝和應用

安裝 pip install pipenv

pipenv 集成了pip,virtualenv兩者的功能,pipenv使用pipfile和pipfile.lock記錄包信息,前者用來記錄項目依賴包列表,后者記錄固定版本的詳細依賴包列表,查看依賴關系十分方便,各個地方使用了哈希效驗,無論安裝還是卸載包都十分安全

創建虛擬環境

  • 第一步撞見文件夾 mkdir [name]
  • 第二步進入文件夾 cd [name]
  • 第三部初始化虛擬環境 pipenv install
  • 初始化后會生成pipfile和pipfile.locke文件

pipenv管理模塊和包

  • 在虛擬環境中安裝包:pipenv install 包名 將包安裝在[packages]下(注意:當前項目路徑下執行命令)
  • pipenv install --dev 包名 將包安裝在開發環境中[dev-packages]
  • 卸載虛擬環境安裝包 pipenv uninstall 包名
  • 查看安裝包及依賴關系 pipenv graph
  • 生成requirements.txt文件
    • pipenv lock -r >requirements.txt 來源[packages]
    • pipenv lock-r--dev >requirements.txt 來源[dev-packages]
  • 使用requirements.txt恢復環境
    • pipenv install -r requirements.txt
  • 使用pipfile和pipfile.lock恢復環境
    • 將兩個文件導入到新的項目中,在項目路徑下執行
    • pipenv install 項目環境恢復
    • pipenv install --dev 開發環境恢復

pipenv的相關命令

  • pipenv --rm 刪除虛擬環境
  • pipenv --where 列出當前工程路徑
  • pipenv --venv 列出虛擬環境路徑
  • pipenv --py 列出python解釋器路徑
  • pipenv graph 查看依賴包
  • pipenv lock 生存lock文件
  • pipenv shell 進入虛擬環境
  • exit 退出虛擬環境

總結

  1. virtualenv 任意項目都能workon創建虛擬環境; pipenv 創建的虛擬環境進去默認在該路徑下,提前做了一步鎖定,別的項目要使用該環境還要切換到項目路徑下才能使用
  2. virtualenv 不區別 開發依賴和項目依賴包 pipenv做了進一步區分為[dev-packages]和[packages]
  3. pip freeze 生成全部的依賴包的requirement.txt
  4. pipenv lock-r區別[dev-packages]和[packages]生成requirement.txt

pipenv 更加強大根據項目建立虛擬環境,默認該項目就和虛擬環境做了聯系




免責聲明!

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



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