python虛擬環境搭建大全

來源:互聯網
上載者:User

標籤:moni   eth   section   appdata   img   read   排除   led   rem   

Pipenv & 虛擬環境

本教程將引導您完成安裝和使用 Python 包。

它將向您展示如何安裝和使用必要的工具,並就最佳做法做出強烈推薦。請記住, Python 用於許多不同的目的。準確地說,您希望如何管理依賴項可能會根據 您如何決定發布軟體而發生變化。這裡提供的指導最直接適用於網路服務 (包括 Web 應用程式)的開發和部署,但也非常適合管理任意項目的開發與測試環境。

註解

本指南是針對 Python 3 編寫。但如果您由於某種原因仍然使用 Python 2.7, 這些指引應該能夠正常工作。

確保您已經有了 Python 和 pip

在您進一步之前,請確保您有 Python,並且可從您的命令列中獲得。 您可以通過簡單地運行以下命令來檢查:

$ python --version

您應該得到像 3.6.2 之類的一些輸出。如果沒有 Python,請從 python.org 安裝最新的 3.x 版本,或參考本指南的 安裝 Python 一節。

註解

如果您是新手,您會得到如下錯誤:

>>> pythonTraceback (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 requests

Pipenv 將在您的項目目錄中安裝超贊的 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.6Also creating executable in ~/.local/share/virtualenvs/tmp-agwWamBd/bin/pythonInstalling setuptools, pip, wheel...done.Virtualenv location: ~/.local/share/virtualenvs/tmp-agwWamBdInstalling requests...Collecting requests  Using cached requests-2.18.4-py2.py3-none-any.whlCollecting idna<2.7,>=2.5 (from requests)  Using cached idna-2.6-py2.py3-none-any.whlCollecting urllib3<1.23,>=1.21.1 (from requests)  Using cached urllib3-1.22-py2.py3-none-any.whlCollecting chardet<3.1.0,>=3.0.2 (from requests)  Using cached chardet-3.0.4-py2.py3-none-any.whlCollecting certifi>=2017.4.17 (from requests)  Using cached certifi-2017.7.27.1-py2.py3-none-any.whlInstalling collected packages: idna, urllib3, chardet, certifi, requestsSuccessfully 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
基本使用
  1. 為一個工程建立一個虛擬環境:
$ cd my_project_folder$ virtualenv my_project

virtualenv my_project 將會在當前的目錄中建立一個檔案夾,包含了Python可執行檔, 以及 pip 庫的一份拷貝,這樣就能安裝其他包了。虛擬環境的名字(此例中是 my_project ) 可以是任意的;若省略名字將會把檔案均放在目前的目錄。

在任何您運行命令的目錄中,這會建立Python的拷貝,並將之放在叫做 my_project 的檔案中。

您可以選擇使用一個Python解譯器(比如``python2.7``):

$ virtualenv -p /usr/bin/python2.7 my_project

或者使用``~/.bashrc``的一個環境變數將解譯器改為全域性的:

$ export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7
  1. 要開始使用虛擬環境,其需要被啟用:
$ source my_project/bin/activate

當前虛擬環境的名字會顯示在提示符左側(比如說 (my_project)您的電腦:您的工程 使用者名稱$) 以讓您知道它是啟用的。從現在起,任何您使用pip安裝的包將會放在 ``my_project檔案夾中, 與全域安裝的Python隔絕開。

像平常一樣安裝包,比如:

$ pip install requests
  1. 如果您在虛擬環境中暫時完成了工作,則可以停用它:
$ deactivate

這將會回到系統預設的Python解譯器,包括已安裝的庫也會回到預設的。

要刪除一個虛擬環境,只需刪除它的檔案夾。(要這麼做請執行 rm -rf my_project )

然後一段時間後,您可能會有很多個虛擬環境散落在系統各處,您將有可能忘記它們的名字或者位置。

其他注意

運行帶 --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 。

基本使用
  1. 建立一個虛擬環境:
$ mkvirtualenv my_project

這會在 ~/Envs 中建立 my_project 檔案夾。

  1. 在虛擬環境上工作:
$ workon my_project

或者,您可以建立一個項目,它會建立虛擬環境,並在 $WORKON_HOME 中建立一個項目目錄。 當您使用 workon myproject 時,會 cd -ed 到項目目錄中。

$ mkproject myproject

virtualenvwrapper 提供環境名字的tab補全功能。當您有很多環境, 並且很難記住它們的名字時,這就顯得很有用。

workon 也能停止您當前所在的環境,所以您可以在環境之間快速的切換。

  1. 停止是一樣的:
$ deactivate
  1. 刪除:
$ rmvirtualenv my_project
其他有用的命令
lsvirtualenv
列舉所有的環境。
cdvirtualenv
導航到當前啟用的虛擬環境的目錄中,比如說這樣您就能夠瀏覽它的  site-packages 。
cdsitepackages
和上面的類似,但是是直接進入到  site-packages 目錄中。
lssitepackages
顯示  site-packages 目錄中的內容。

virtualenvwrapper 命令的完全列表 。

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

python虛擬環境搭建大全(轉)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.