Pipenv和Python虚拟环境
Pipenv & 虛擬環境
本教程將引導您完成安裝和使用 Python 包。
它將向您展示如何安裝和使用必要的工具,并就最佳做法做出強烈推薦。請記住, Python 用于許多不同的目的。準確地說,您希望如何管理依賴項可能會根據 您如何決定發布軟件而發生變化。這里提供的指導最直接適用于網絡服務 (包括 Web 應用程序)的開發和部署,但也非常適合管理任意項目的開發和測試環境。
注解
本指南是針對 Python 3 編寫。但如果您由于某種原因仍然使用 Python 2.7, 這些指引應該能夠正常工作。
確保您已經有了 Python 和 pip
在您進一步之前,請確保您有 Python,并且可從您的命令行中獲得。 您可以通過簡單地運行以下命令來檢查:
$ python --version您應該得到像?3.6.2?之類的一些輸出。如果沒有 Python,請從?python.org?安裝最新的 3.x 版本,或參考本指南的?安裝 Python?一節。
注解
如果您是新手,您會得到如下錯誤:
>>> python Traceback (most recent call last):File "<stdin>", line 1, in <module> NameError: name 'python' is not defined這是因為此命令要在?shell*(也稱為 *終端?或?控制臺)中運行。有關使用操作系統的 shell 并和 Python 進行交互的介紹,請參閱面向 Python 新手的?入門教程。
另外,您需要確保?pip?是可用的。您可以通過運行以下命令來檢查:
$ pip --version如果您使用?python.org?或?Homebrew?的安裝程序來安裝 Python,您應該已經有 pip 了。 如果您使用的是Linux,并使用操作系統的包管理器進行安裝,則可能需要單獨?安裝 pip。
安裝 Pipenv
Pipenv?是 Python 項目的依賴管理器。如果您熟悉 Node.js 的?npm?或 Ruby 的?bundler,那么它們在思路上與這些工具類似。盡管?pip?可以安裝 Python 包, 但仍推薦使用 Pipenv,因為它是一種更高級的工具,可簡化依賴關系管理的常見使用情況。
使用?pip?來安裝 Pipenv:
$ pip install --user pipenv注解
這進行了?用戶安裝,以防止破壞任何系統范圍的包。如果安裝后, shell 中沒有pipenv,則需要將?用戶基礎目錄?的 二進制文件目錄添加到?PATH?中。
在 Linux 和 macOS 上,您可以通過運行?python?-m?site?--user-base?找到 用戶基礎目錄,然后把?bin?加到目錄末尾。比如,上述命令典型地會打印出~/.local``(?``~?會擴展為您的家目錄的局對路徑),然后將?~/.local/bin?添加到?PATH?中。您可以通過?修改 ~/.profile?永久地設置?PATH。
在 Windows 上,您通過運行?py?-m?site?--user-site?找到用戶基礎目錄,然后 將?site-packages?替換為?Scripts。比如,上述命令可能返回為C:\Users\Username\AppData\Roaming\Python36\site-packages,然后您需要在PATH?中包含?C:\Users\Username\AppData\Roaming\Python36\Scripts。 您可以在?控制面板?中永久設置用戶的?PATH。您可能需要登出?PATH?更改才能生效。
為您的項目安裝包
Pipenv 管理每個項目的依賴關系。要安裝軟件包時,請更改到您的項目目錄(或只是本教程中的 一個空目錄)并運行:
$ cd myproject $ pipenv install requestsPipenv 將在您的項目目錄中安裝超贊的?Requests?庫并為您創建一個?Pipfile。?Pipfile用于跟蹤您的項目中需要重新安裝的依賴,例如在與他人共享項目時。 您應該得到類似的輸出(盡管顯示的確切路徑會有所不同):
Creating a Pipfile for this project... Creating a virtualenv for this project... Using base prefix '/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6' New python executable in ~/.local/share/virtualenvs/tmp-agwWamBd/bin/python3.6 Also creating executable in ~/.local/share/virtualenvs/tmp-agwWamBd/bin/python Installing setuptools, pip, wheel...done.Virtualenv location: ~/.local/share/virtualenvs/tmp-agwWamBd Installing requests... Collecting requestsUsing cached requests-2.18.4-py2.py3-none-any.whl Collecting idna<2.7,>=2.5 (from requests)Using cached idna-2.6-py2.py3-none-any.whl Collecting urllib3<1.23,>=1.21.1 (from requests)Using cached urllib3-1.22-py2.py3-none-any.whl Collecting chardet<3.1.0,>=3.0.2 (from requests)Using cached chardet-3.0.4-py2.py3-none-any.whl Collecting certifi>=2017.4.17 (from requests)Using cached certifi-2017.7.27.1-py2.py3-none-any.whl Installing collected packages: idna, urllib3, chardet, certifi, requests Successfully installed certifi-2017.7.27.1 chardet-3.0.4 idna-2.6 requests-2.18.4 urllib3-1.22Adding requests to Pipfile's [packages]... P.S. You have excellent taste! ? ? ?使用安裝好的包
現在安裝了 Requests,您可以創建一個簡單的?main.py?文件來使用它:
import requestsresponse = requests.get('https://httpbin.org/ip') print('Your IP is {0}'.format(response.json()['origin']))然后您就可以使用?pipenv?run?運行這段腳本:
$ pipenv run python main.py您應該獲取到類似的輸出:
Your IP is 8.8.8.8使用?$?pipenv?run?可確保您的安裝包可用于您的腳本。我們還可以生成一個新的 shell, 確保所有命令都可以使用?$?pipenv?shell?訪問已安裝的包。
下一步
恭喜,您現在知道如何安裝和使用Python包了! ? ? ?
更低層次: virtualenv
virtualenv?是一個創建隔絕的Python環境的 工具。virtualenv創建一個包含所有必要的可執行文件的文件夾,用來使用Python工程所需的包。
它可以獨立使用,代替Pipenv。
通過pip安裝virtualenv:
$ pip install virtualenv測試您的安裝:
$ virtualenv --version基本使用
virtualenv?venv?將會在當前的目錄中創建一個文件夾,包含了Python可執行文件, 以及?pip?庫的一份拷貝,這樣就能安裝其他包了。虛擬環境的名字(此例中是?venv?) 可以是任意的;若省略名字將會把文件均放在當前目錄。
在任何您運行命令的目錄中,這會創建Python的拷貝,并將之放在叫做?venv?的文件中。
您可以選擇使用一個Python解釋器(比如``python2.7``):
$ virtualenv -p /usr/bin/python2.7 venv或者使用``~/.bashrc``的一個環境變量將解釋器改為全局性的:
$ export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7當前虛擬環境的名字會顯示在提示符左側(比如說?(venv)您的電腦:您的工程?用戶名$)以讓您知道它是激活的。從現在起,任何您使用pip安裝的包將會放在?``venv?文件夾中, 與全局安裝的Python隔絕開。
像平常一樣安裝包,比如:
$ pip install requests這將會回到系統默認的Python解釋器,包括已安裝的庫也會回到默認的。
要刪除一個虛擬環境,只需刪除它的文件夾。(要這么做請執行?rm?-rf?venv?)
然后一段時間后,您可能會有很多個虛擬環境散落在系統各處,您將有可能忘記它們的名字或者位置。
其他注意事項
運行帶?--no-site-packages?選項的?virtualenv?將不會包括全局安裝的包。 這可用于保持包列表干凈,以防以后需要訪問它。(這在?virtualenv?1.7及之后是默認行為)
為了保持您的環境的一致性,“冷凍住(freeze)”環境包當前的狀態是個好主意。要這么做,請運行:
$ pip freeze > requirements.txt這將會創建一個?requirements.txt?文件,其中包含了當前環境中所有包及 各自的版本的簡單列表。您可以使用?pip?list?在不產生requirements文件的情況下, 查看已安裝包的列表。這將會使另一個不同的開發者(或者是您,如果您需要重新創建這樣的環境) 在以后安裝相同版本的相同包變得容易。
$ pip install -r requirements.txt這能幫助確保安裝、部署和開發者之間的一致性。
最后,記住在源碼版本控制中排除掉虛擬環境文件夾,可在ignore的列表中加上它。 (查看?版本控制忽略)
virtualenvwrapper
virtualenvwrapper?提供了一系列命令使得和虛擬環境工作變得愉快許多。它把您所有的虛擬環境都放在一個地方。
安裝(確保?virtualenv?已經安裝了):
$ pip install virtualenvwrapper $ export WORKON_HOME=~/Envs $ source /usr/local/bin/virtualenvwrapper.sh(virtualenvwrapper 的完整安裝指引.)
對于Windows,您可以使用?virtualenvwrapper-win?。
安裝(確保?virtualenv?已經安裝了):
$ pip install virtualenvwrapper-win在Windows中,WORKON_HOME默認的路徑是 %USERPROFILE%\Envs 。
基本使用
這會在?~/Envs?中創建?my_project?文件夾。
或者,您可以創建一個項目,它會創建虛擬環境,并在?$WORKON_HOME?中創建一個項目目錄。 當您使用?workon?myproject?時,會?cd?到項目目錄中。
$ mkproject myprojectvirtualenvwrapper?提供環境名字的tab補全功能。當您有很多環境, 并且很難記住它們的名字時,這就顯得很有用。
workon?也能停止您當前所在的環境,所以您可以在環境之間快速的切換。
其他有用的命令
lsvirtualenvvirtualenvwrapper 命令的完全列表?。
virtualenv-burrito
有了?virtualenv-burrito?, 您就能使用單行命令擁有virtualenv + virtualenvwrapper的環境。
autoenv
當您?cd?進入一個包含?.env?的目錄中,就會?autoenv?自動激活那個環境。
使用?brew?在Mac OS X上安裝它:
$ brew install autoenv在Linux上:
$ git clone git://github.com/kennethreitz/autoenv.git ~/.autoenv $ echo 'source ~/.autoenv/activate.sh' >> ~/.bashrc轉載于:https://www.cnblogs.com/sddai/p/10578019.html
總結
以上是生活随笔為你收集整理的Pipenv和Python虚拟环境的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue中的computed 与
- 下一篇: 2017年第八届蓝桥杯省赛试题(Java