摘要:偶然發(fā)現(xiàn)后試用了一下,感覺它的工作流相比之前虛擬環(huán)境環(huán)境加的方式更加簡單方便。還支持自定義命令,這對于某些開發(fā)過程中經(jīng)常使用的命令來說非常方便。
之前在開發(fā)時一直使用 conda 使用作為虛擬環(huán)境管理工具,但有時候會經(jīng)常會臨時性的需要一個虛擬環(huán)境,
如果使用 conda create 創(chuàng)建一個新環(huán)境,耗時不說,有時候還忘了刪除,最后系統(tǒng)里一堆的虛擬環(huán)境。
偶然發(fā)現(xiàn) pipenv 后試用了一下,感覺它的工作流相比之前虛擬環(huán)境環(huán)境加 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使用 創(chuàng)建新項目
mkdir myproject pipenv install
這會在 myproject 文件下創(chuàng)建 Pipfile 和 Pipfile.lock 文件,同時創(chuàng)建虛擬環(huán)境
虛擬環(huán)境名稱為 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
虛擬機環(huán)境默認(rèn)位于 ~/.local/share/virtualenvs/,由于 pipenv 通過路徑名哈希值與虛擬環(huán)境
建立映射關(guān)系,因此如果移動項目會導(dǎo)致虛擬環(huán)境不可用。可以通過在 .bashrc 添加
export PIPENV_VENV_IN_PROJECT=1 讓 pipenv 在項目文件中創(chuàng)建虛擬環(huán)境,這時候虛擬環(huán)境位于 myproject/.venv 文件夾下。
如果項刪除虛擬環(huán)境,在項目頂層目錄下運行
pipenv --rm
如果要指定 Python 版本,可以通過 --python 完成,如我要安裝 python3.7 的虛擬環(huán)境
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 源位置,通常國內(nèi) 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="**",甚至可以指定不同
平臺下的包配置,詳細(xì)配置參考 Advanced Usage of Pipenv
不過你可以通過pipenv install requests
來安裝,pipenv 將會自動更新 Pipfile 和 Pipfile.lock。
[dev-packages] 則是一些開發(fā)依賴但不是項目依賴包的存放目錄,如 pylint 等 pep8 檢查工具
可以在安裝時指定 pipenv install --dev將某個包聲明為 dev-package
卸載 package 也很簡單
pip uninstall
如果通過 pipenv 命令安裝和卸載 package,安裝或卸載完成后還會更新 Pipfile.lock 文件,有時候會卡在這個步驟。通常可以 ctrl+c 強制推出,刪除 Pipfile.lock, 然后
pipenv lock
重新生成該文件
進(jìn)入和退出虛擬環(huán)境進(jìn)入虛擬環(huán)境
cd myproject pipenv shell
退出虛擬環(huán)境
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
自動載入環(huán)境變量文件。如果 .env 文件在項目根目錄下,pipenv shell 和 pipenv run 將
會自動載入文件中的環(huán)境變量。
$ 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 還支持自定義命令,這對于某些開發(fā)過程中經(jīng)常使用的命令來說非常方便。
在 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
更多高級用戶可以參考 官方文檔
最后歡迎關(guān)注我的 Blog-PrivateRookie
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/43627.html
摘要:前言第一次接觸到是因為看到董明偉大神的使用管理你的項目,之前可能和大家的選擇類似使用或者來管理的包環(huán)境。是針對的包的多版本管理,通過將包安裝到一個模塊來作為的包虛擬環(huán)境,通過切換目錄來實現(xiàn)不同包環(huán)境間的切換。 前言 第一次接觸到 pipenv 是因為看到@董明偉大神的《使用pipenv管理你的項目》,之前可能和大家的選擇類似使用 virtualenv 或者 pyenv 來管理 pyth...
摘要:三個常用的虛擬環(huán)境配置來匯總,如有不適之處,還望各位大佬指正。一個項目對應(yīng)一個,支持開發(fā)環(huán)境與正式環(huán)境區(qū)分。其使用創(chuàng)建環(huán)境,以便分隔使用不同版本和不同程序包的項目。 前言 和其他大多數(shù)現(xiàn)代編程語言一樣,Python對包和 模塊的下載、存儲以及管理有其自己的一套方法。但是當(dāng)我們同時開發(fā)多個項目工程的時候,不同的項目會將第三方的包存放在相同的路徑下。這就意味著,如果有兩個工程依賴同一個包,但是所...
摘要:的把最新型最先進(jìn)的虛擬環(huán)境吵得火熱。進(jìn)入后,你會發(fā)現(xiàn)用也是能生效的。但是注意進(jìn)入環(huán)境后千萬不要用退出,而應(yīng)該用退出。最佳解決方案是因為這種在其他地方也常見,一般都是沒有在環(huán)境里安裝的問題。 2018的PyCon把最新型最先進(jìn)的Python虛擬環(huán)境pipenv吵得火熱。看了下介紹感覺真的很好用,它在virtualenv的基礎(chǔ)上包裝了一些更便捷的功能,解決了很多很多virtualenv欠缺...
摘要:安全,廣泛地使用校驗,能夠自動曝露安全漏洞。部分用來設(shè)置倉庫地址,部分用來指定項目依賴的包,部分用來指定開發(fā)環(huán)境需要的包,這樣分開便于管理。參考鏈接新款虛擬環(huán)境工具詳解筆記使用指南官方推薦的包管理工具 pipenv 是什么 pipenv 是 python 官方推薦的包管理工具,集成了 virtualenv、pyenv 和 pip 三者的功能于一身,類似于 php 中的 composer...
摘要:提示如果你對的用法以及虛擬環(huán)境的概念不熟悉的話,可以通過專欄的舊文出發(fā)之旅進(jìn)行簡單的認(rèn)識。為什么使用會自動幫你管理虛擬環(huán)境和依賴文件,并且提供了一系列命令和選項來幫助你實現(xiàn)各種依賴和環(huán)境管理相關(guān)的操作。 什么是Pipenv Pipenv是Kenneth Reitz在2017年1月發(fā)布的Python依賴管理工具,現(xiàn)在由PyPA維護(hù)。你可以把它看做是pip和virtualenv的組合體,而...
閱讀 1877·2021-11-19 09:40
閱讀 2594·2021-08-30 09:46
閱讀 2177·2021-08-03 14:01
閱讀 2648·2019-08-30 10:54
閱讀 1197·2019-08-29 16:38
閱讀 1440·2019-08-29 11:02
閱讀 2536·2019-08-28 18:16
閱讀 1679·2019-08-28 18:09