日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:12.虛擬環(huán)境和包

12. 虛擬環(huán)境和包

12.1. 概述

python應(yīng)用程序通常會使用不在標準庫內(nèi)的軟件包和模塊。應(yīng)用程序有時需要特定版本的庫,因為應(yīng)用程序可能需要修復特定的錯誤,或者可以使用庫的過時版本的接口編寫應(yīng)用程序。

這意味著一個Python安裝可能無法滿足每個應(yīng)用程序的要求。如果應(yīng)用程序A需要特定模塊的1.0版本但應(yīng)用程序B需要2.0版本,則需求存在沖突,安裝版本1.0或2.0將導致某一個應(yīng)用程序無法運行。

這個問題的解決方案是創(chuàng)建一個 virtual environment,一個目錄樹,其中安裝有特定Python版本,以及許多其他包。

然后,不同的應(yīng)用將可以使用不同的虛擬環(huán)境。 要解決先前需求相沖突的例子,應(yīng)用程序 A 可以擁有自己的 安裝了 1.0 版本的虛擬環(huán)境,而應(yīng)用程序 B 則擁有安裝了 2.0 版本的另一個虛擬環(huán)境。 如果應(yīng)用程序 B 要求將某個庫升級到 3.0 版本,也不會影響應(yīng)用程序 A 的環(huán)境。

12.2. 創(chuàng)建虛擬環(huán)境

用于創(chuàng)建和管理虛擬環(huán)境的模塊稱為 venv。venv 通常會安裝你可用的最新版本的 Python。如果您的系統(tǒng)上有多個版本的 Python,您可以通過運行 Python3 或您想要的任何版本來選擇特定的Python版本。

要創(chuàng)建虛擬環(huán)境,請確定要放置它的目錄,并將 venv 模塊作為腳本運行目錄路徑:

 
 
 
 
  1. python3 -m venv tutorial-env

這將創(chuàng)建 tutorial-env 目錄,如果它不存在的話,并在其中創(chuàng)建包含 Python 解釋器副本和各種支持文件的目錄。

虛擬環(huán)境的常用目錄位置是 .venv。 這個名稱通常會令該目錄在你的終端中保持隱藏,從而避免需要對所在目錄進行額外解釋的一般名稱。 它還能防止與某些工具所支持的 .env 環(huán)境變量定義文件發(fā)生沖突。

創(chuàng)建虛擬環(huán)境后,您可以激活它。

在Windows上,運行:

 
 
 
 
  1. tutorial-env\Scripts\activate.bat

在Unix或MacOS上,運行:

 
 
 
 
  1. source tutorial-env/bin/activate

(這個腳本是為bash shell編寫的。如果你使用 cshfish shell,你應(yīng)該改用 activate.cshactivate.fish 腳本。)

激活虛擬環(huán)境將改變你所用終端的提示符,以顯示你正在使用的虛擬環(huán)境,并修改環(huán)境以使 python 命令所運行的將是已安裝的特定 Python 版本。 例如:

 
 
 
 
  1. $ source ~/envs/tutorial-env/bin/activate
  2. (tutorial-env) $ python
  3. Python 3.5.1 (default, May 6 2016, 10:59:36)
  4. ...
  5. >>> import sys
  6. >>> sys.path
  7. ['', '/usr/local/lib/python35.zip', ...,
  8. '~/envs/tutorial-env/lib/python3.5/site-packages']
  9. >>>

To deactivate a virtual environment, type:

 
 
 
 
  1. deactivate

into the terminal.

12.3. 使用pip管理包

你可以使用一個名為 pip 的程序來安裝、升級和移除軟件包。 默認情況下 pip 將從 Python Package Index 安裝軟件包。 你可以在你的 web 瀏覽器中查看 Python Package Index。

pip 有許多子命令: “install”, “uninstall”, “freeze” 等等。 (請在 安裝 Python 模塊 指南頁查看完整的 pip 文檔。)

您可以通過指定包的名稱來安裝最新版本的包:

 
 
 
 
  1. (tutorial-env) $ python -m pip install novas
  2. Collecting novas
  3. Downloading novas-3.1.1.3.tar.gz (136kB)
  4. Installing collected packages: novas
  5. Running setup.py install for novas
  6. Successfully installed novas-3.1.1.3

您還可以通過提供包名稱后跟 == 和版本號來安裝特定版本的包:

 
 
 
 
  1. (tutorial-env) $ python -m pip install requests==2.6.0
  2. Collecting requests==2.6.0
  3. Using cached requests-2.6.0-py2.py3-none-any.whl
  4. Installing collected packages: requests
  5. Successfully installed requests-2.6.0

If you re-run this command, pip will notice that the requested version is already installed and do nothing. You can supply a different version number to get that version, or you can run python -m pip install --upgrade to upgrade the package to the latest version:

 
 
 
 
  1. (tutorial-env) $ python -m pip install --upgrade requests
  2. Collecting requests
  3. Installing collected packages: requests
  4. Found existing installation: requests 2.6.0
  5. Uninstalling requests-2.6.0:
  6. Successfully uninstalled requests-2.6.0
  7. Successfully installed requests-2.7.0

python -m pip uninstall followed by one or more package names will remove the packages from the virtual environment.

python -m pip show will display information about a particular package:

 
 
 
 
  1. (tutorial-env) $ python -m pip show requests
  2. ---
  3. Metadata-Version: 2.0
  4. Name: requests
  5. Version: 2.7.0
  6. Summary: Python HTTP for Humans.
  7. Home-page: http://python-requests.org
  8. Author: Kenneth Reitz
  9. Author-email: me@kennethreitz.com
  10. License: Apache 2.0
  11. Location: /Users/akuchling/envs/tutorial-env/lib/python3.4/site-packages
  12. Requires:

python -m pip list will display all of the packages installed in the virtual environment:

 
 
 
 
  1. (tutorial-env) $ python -m pip list
  2. novas (3.1.1.3)
  3. numpy (1.9.2)
  4. pip (7.0.3)
  5. requests (2.7.0)
  6. setuptools (16.0)

python -m pip freeze will produce a similar list of the installed packages, but the output uses the format that python -m pip install expects. A common convention is to put this list in a requirements.txt file:

 
 
 
 
  1. (tutorial-env) $ python -m pip freeze > requirements.txt
  2. (tutorial-env) $ cat requirements.txt
  3. novas==3.1.1.3
  4. numpy==1.9.2
  5. requests==2.7.0

然后可以將 requirements.txt 提交給版本控制并作為應(yīng)用程序的一部分提供。然后用戶可以使用 install -r 安裝所有必需的包:

 
 
 
 
  1. (tutorial-env) $ python -m pip install -r requirements.txt
  2. Collecting novas==3.1.1.3 (from -r requirements.txt (line 1))
  3. ...
  4. Collecting numpy==1.9.2 (from -r requirements.txt (line 2))
  5. ...
  6. Collecting requests==2.7.0 (from -r requirements.txt (line 3))
  7. ...
  8. Installing collected packages: novas, numpy, requests
  9. Running setup.py install for novas
  10. Successfully installed novas-3.1.1.3 numpy-1.9.2 requests-2.7.0

pip 有更多選擇。有關(guān) pip 的完整文檔,請參閱 安裝 Python 模塊 指南。當您編寫一個包并希望在 Python 包索引中使它可用時,請參考 分發(fā) Python 模塊 指南。


本文標題:創(chuàng)新互聯(lián)Python教程:12.虛擬環(huán)境和包
鏈接分享:http://www.dlmjj.cn/article/djeopjd.html