摘要:偶然發現后試用了一下,感覺它的工作流相比之前虛擬環境環境加的方式更加簡單方便。還支持自定義命令,這對于某些開發過程中經常使用的命令來說非常方便。
之前在開發時一直使用 conda 使用作為虛擬環境管理工具,但有時候會經常會臨時性的需要一個虛擬環境,
如果使用 conda create 創建一個新環境,耗時不說,有時候還忘了刪除,最后系統里一堆的虛擬環境。
偶然發現 pipenv 后試用了一下,感覺它的工作流相比之前虛擬環境環境加 requirements.txt
的方式更加簡單方便。
pipenv 最好和 Python3 一起使用
最簡單的方式是通過 pip 安裝
pip3 install pipenv
如果是 mac 用戶也可以通過 Homebrew 安裝
brew install pipenv
如果沒有安裝 pip 可以通過以下方式安裝
https://raw.githubusercontent.com/kennethreitz/pipenv/master/get-pipenv.py | python使用 創建新項目
mkdir myproject pipenv install
這會在 myproject 文件下創建 Pipfile 和 Pipfile.lock 文件,同時創建虛擬環境
虛擬環境名稱為 pipenv 加項目路徑哈希值,如 pipenv-7BgKv-oX
ll -rw-r--r-- 1 rookie rookie 138 4月 20 20:24 Pipfile -rw-r--r-- 1 rookie rookie 453 4月 20 20:24 Pipfile.lock
虛擬機環境默認位于 ~/.local/share/virtualenvs/,由于 pipenv 通過路徑名哈希值與虛擬環境
建立映射關系,因此如果移動項目會導致虛擬環境不可用??梢酝ㄟ^在 .bashrc 添加
export PIPENV_VENV_IN_PROJECT=1 讓 pipenv 在項目文件中創建虛擬環境,這時候虛擬環境位于 myproject/.venv 文件夾下。
如果項刪除虛擬環境,在項目頂層目錄下運行
pipenv --rm
如果要指定 Python 版本,可以通過 --python 完成,如我要安裝 python3.7 的虛擬環境
pipenv --python 3.7配置文件
# cat Pipfile [[source]] name = "pypi" url = "https://pypi.org/simple" verify_ssl = true [dev-packages] [packages] [requires] python_version = "3.6"
[[source]] 模塊指定了 pip 源位置,通常國內 pip 源加快下載速度
[[source]] name = "tuna" url = "https://pypi.tuna.tsinghua.edu.cn/simple/" verify_ssl = true [[source]] name = "pypi" url = "https://pypi.org/simple" verify_ssl = true [dev-packages] [packages] [requires] python_version = "3.6"安裝和卸載 packages
你可以編輯 packages, 添加項目需要的 Python 庫,如 requests="**",甚至可以指定不同
平臺下的包配置,詳細配置參考 Advanced Usage of Pipenv
不過你可以通過pipenv install requests
來安裝,pipenv 將會自動更新 Pipfile 和 Pipfile.lock。
[dev-packages] 則是一些開發依賴但不是項目依賴包的存放目錄,如 pylint 等 pep8 檢查工具
可以在安裝時指定 pipenv install --dev將某個包聲明為 dev-package
卸載 package 也很簡單
pip uninstall
如果通過 pipenv 命令安裝和卸載 package,安裝或卸載完成后還會更新 Pipfile.lock 文件,有時候會卡在這個步驟。通??梢?ctrl+c 強制推出,刪除 Pipfile.lock, 然后
pipenv lock
重新生成該文件
進入和退出虛擬環境進入虛擬環境
cd myproject pipenv shell
退出虛擬環境
pipenv exit高級用法
有時候某些 package 需要指定特定的 pip 源,可以通過如下方式指定,非常簡便
[[source]] url = "https://pypi.python.org/simple" verify_ssl = true name = "pypi" [[source]] url = "http://pypi.home.kennethreitz.org/simple" verify_ssl = false name = "home" [dev-packages] [packages] requests = {version="*", index="home"} maya = {version="*", index="pypi"} records = "*"
有時候需要生成 requirements.txt 文件
pipenv lock -r
如果只需要生成 dev-pakcages 列表,也很簡單
pipenv lock -r --dev
自動載入環境變量文件。如果 .env 文件在項目根目錄下,pipenv shell 和 pipenv run 將
會自動載入文件中的環境變量。
$ cat .env HELLO=WORLD $ pipenv run python Loading .env environment variables… Python 2.7.13 (default, Jul 18 2017, 09:17:00) [GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.42)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import os >>> os.environ["HELLO"] "WORLD"
pipenv 還支持自定義命令,這對于某些開發過程中經常使用的命令來說非常方便。
在 Pipfile 中添加 [scripts]
[scripts] printspam = "python -c "print("I am a silly example, no one would need to do this")""
通過 pipenv run
pipenv run echospam "indeed" I am really a very silly example indeed
更多高級用戶可以參考 官方文檔
最后歡迎關注我的 Blog-PrivateRookie
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/43627.html
摘要:前言第一次接觸到是因為看到董明偉大神的使用管理你的項目,之前可能和大家的選擇類似使用或者來管理的包環境。是針對的包的多版本管理,通過將包安裝到一個模塊來作為的包虛擬環境,通過切換目錄來實現不同包環境間的切換。 前言 第一次接觸到 pipenv 是因為看到@董明偉大神的《使用pipenv管理你的項目》,之前可能和大家的選擇類似使用 virtualenv 或者 pyenv 來管理 pyth...
摘要:三個常用的虛擬環境配置來匯總,如有不適之處,還望各位大佬指正。一個項目對應一個,支持開發環境與正式環境區分。其使用創建環境,以便分隔使用不同版本和不同程序包的項目。 前言 和其他大多數現代編程語言一樣,Python對包和 模塊的下載、存儲以及管理有其自己的一套方法。但是當我們同時開發多個項目工程的時候,不同的項目會將第三方的包存放在相同的路徑下。這就意味著,如果有兩個工程依賴同一個包,但是所...
摘要:的把最新型最先進的虛擬環境吵得火熱。進入后,你會發現用也是能生效的。但是注意進入環境后千萬不要用退出,而應該用退出。最佳解決方案是因為這種在其他地方也常見,一般都是沒有在環境里安裝的問題。 2018的PyCon把最新型最先進的Python虛擬環境pipenv吵得火熱??戳讼陆榻B感覺真的很好用,它在virtualenv的基礎上包裝了一些更便捷的功能,解決了很多很多virtualenv欠缺...
摘要:安全,廣泛地使用校驗,能夠自動曝露安全漏洞。部分用來設置倉庫地址,部分用來指定項目依賴的包,部分用來指定開發環境需要的包,這樣分開便于管理。參考鏈接新款虛擬環境工具詳解筆記使用指南官方推薦的包管理工具 pipenv 是什么 pipenv 是 python 官方推薦的包管理工具,集成了 virtualenv、pyenv 和 pip 三者的功能于一身,類似于 php 中的 composer...
摘要:提示如果你對的用法以及虛擬環境的概念不熟悉的話,可以通過專欄的舊文出發之旅進行簡單的認識。為什么使用會自動幫你管理虛擬環境和依賴文件,并且提供了一系列命令和選項來幫助你實現各種依賴和環境管理相關的操作。 什么是Pipenv Pipenv是Kenneth Reitz在2017年1月發布的Python依賴管理工具,現在由PyPA維護。你可以把它看做是pip和virtualenv的組合體,而...
閱讀 1885·2021-11-19 09:40
閱讀 2604·2021-08-30 09:46
閱讀 2188·2021-08-03 14:01
閱讀 2656·2019-08-30 10:54
閱讀 1206·2019-08-29 16:38
閱讀 1450·2019-08-29 11:02
閱讀 2543·2019-08-28 18:16
閱讀 1691·2019-08-28 18:09