日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python学习笔记:虚拟环境和包

發布時間:2025/3/15 python 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python学习笔记:虚拟环境和包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文來自:入門指南
開胃菜參考:開胃菜
使用Python解釋器:使用Python解釋器
本文對Python的簡介:Python 簡介
Python流程介紹:深入Python 流程
Python數據結構:Python 數據結構
Python:模塊:Python 模塊
Python:輸入和輸出Python 輸入和輸出
Python:錯誤和異常Python 錯誤和異常
Python:類Python:類
Python:標準庫預覽Python:標準庫預覽
Python:標準庫預覽2Python:標準庫預覽2
#12. 虛擬環境和包
##12.1. 簡介

Python 應用程序經常會使用一些不屬于標準庫的包和模塊。應用程序有時候需要某個特定版本的庫,因為它需要一個特定的 bug 已得到修復的庫或者它是使用了一個過時版本的庫的接口編寫的。

這就意味著可能無法安裝一個 Python 來滿足每個應用程序的要求。如果應用程序 A 需要一個特定模塊的 1.0 版本但是應用程序 B 需要該模塊的 2.0 版本,這兩個應用程序的要求是沖突的,安裝版本 1.0 或者版本 2.0 將會導致其中一個應用程序不能運行。

這個問題的解決方案就是創建一個 虛擬環境 (通常簡稱為 “virtualenv”),包含一個特定版本的 Python,以及一些附加的包的獨立的目錄樹。

不同的應用程序可以使用不同的虛擬環境。為了解決前面例子中的沖突,應用程序 A 可以有自己的虛擬環境,其中安裝了特定模塊的 1.0 版本。而應用程序 B 擁有另外一個安裝了特定模塊 2.0 版本的虛擬環境。如果應用程序 B 需求一個庫升級到 3.0 的話,這也不會影響到應用程序 A 的環境。
12.2. 創建虛擬環境

用于創建和管理虛擬環境的腳本叫做 pyvenv。pyvenv 通常會安裝你可用的 Python 中最新的版本。這個腳本也能指定安裝一個特定的版本的 Python,因此如果在你的系統中有多個版本的 Python 的話,你可以運行 pyvenv-3.5 或者你想要的任何版本來選擇一個指定的 Python 版本。

要創建一個 virtualenv,首先決定一個你想要存放的目錄接著運行 pyvenv 后面攜帶著目錄名:

pyvenv tutorial-env

如果目錄不存在的話,這將會創建一個 tutorial-env 目錄,并且也在目錄里面創建一個包含 Python 解釋器,標準庫,以及各種配套文件的 Python “副本”。

一旦你已經創建了一個虛擬環境,你必須激活它。

在 Windows 上,運行:

tutorial-env/Scripts/activate

在 Unix 或者 MacOS 上,運行:

source tutorial-env/bin/activate

(這個腳本是用 bash shell 編寫的。如果你使用 csh 或者 fish shell,你應該使用 activate.csh 和 activate.fish 來替代。)

激活了虛擬環境會改變你的 shell 提示符,顯示你正在使用的虛擬環境,并且修改了環境以致運行 python 將會讓你得到了特定的 Python 版本。例如:

-> source ~/envs/tutorial-env/bin/activate (tutorial-env) -> python Python 3.5.2+ (3.4:c7b9645a6f35+, May 22 2015, 09:31:25)... >>> import sys >>> sys.path ['', '/usr/local/lib/python35.zip', ..., '~/envs/tutorial-env/lib/python3.5/site-packages'] >>>

##12.3. 使用 pip 管理包

一旦你激活了一個虛擬環境,可以使用一個叫做 pip 程序來安裝,升級以及刪除包。默認情況下 pip 將會從 Python Package Index,https://pypi.python.org/pypi, 中安裝包。你可以通過 web 瀏覽器瀏覽它們,或者你也能使用 pip 有限的搜索功能:

(tutorial-env) -> pip search astronomy skyfield - Elegant astronomy for Python gary - Galactic astronomy and gravitational dynamics. novas - The United States Naval Observatory NOVAS astronomy library astroobs - Provides astronomy ephemeris to plan telescope observations PyAstronomy - A collection of astronomy related tools for Python.

pip 有許多子命令:“搜索”,“安裝”,“卸載”,“freeze”(譯者注:這個詞語暫時沒有合適的詞語來翻譯),等等。(請參考 installing-index 指南獲取 pip 更多完整的文檔。)

你可以安裝一個包最新的版本,通過指定包的名稱:

-> pip install novas Collecting novasDownloading novas-3.1.1.3.tar.gz (136kB) Installing collected packages: novasRunning setup.py install for novas Successfully installed novas-3.1.1.3

你也能安裝一個指定版本的包,通過給出包名后面緊跟著 == 和版本號:

-> pip install requests==2.6.0 Collecting requests==2.6.0Using cached requests-2.6.0-py2.py3-none-any.whl Installing collected packages: requests Successfully installed requests-2.6.0

如果你重新運行命令(pip install requests==2.6.0),pip 會注意到要求的版本已經安裝,不會去做任何事情。你也可以提供一個不同的版本號來安裝,或者運行 pip install --upgrade 來升級包到最新版本:

-> pip install --upgrade requests Collecting requests Installing collected packages: requestsFound existing installation: requests 2.6.0Uninstalling requests-2.6.0:Successfully uninstalled requests-2.6.0 Successfully installed requests-2.7.0

pip uninstall 后跟一個或者多個包名將會從虛擬環境中移除這些包。

pip show 將會顯示一個指定的包的信息:

(tutorial-env) -> pip show requests --- Metadata-Version: 2.0 Name: requests Version: 2.7.0 Summary: Python HTTP for Humans. Home-page: http://python-requests.org Author: Kenneth Reitz Author-email: me@kennethreitz.com License: Apache 2.0 Location: /Users/akuchling/envs/tutorial-env/lib/python3.4/site-packages Requires:

pip list 將會列出所有安裝在虛擬環境中的包:

(tutorial-env) -> pip list novas (3.1.1.3) numpy (1.9.2) pip (7.0.3) requests (2.7.0) setuptools (16.0)

pip freeze 將會生成一個類似需要安裝的包的列表,但是輸出采用了 pip install 期望的格式。常見的做法就是把它們放在一個 requirements.txt 文件:

(tutorial-env) -> pip freeze > requirements.txt (tutorial-env) -> cat requirements.txt novas==3.1.1.3 numpy==1.9.2 requests==2.7.0

requirements.txt 能夠被提交到版本控制中并且作為一個應用程序的一部分。用戶們可以使用 install -r 安裝所有必須的包:

-> pip install -r requirements.txt Collecting novas==3.1.1.3 (from -r requirements.txt (line 1))... Collecting numpy==1.9.2 (from -r requirements.txt (line 2))... Collecting requests==2.7.0 (from -r requirements.txt (line 3))... Installing collected packages: novas, numpy, requestsRunning setup.py install for novas Successfully installed novas-3.1.1.3 numpy-1.9.2 requests-2.7.0

pip 還有更多的選項。請參考 installing-index 指南獲取關于 pip 完整的文檔。當你編寫一個包并且在 Python Package Index 中也出現的話,請參考 distributing-index 指南。

總結

以上是生活随笔為你收集整理的Python学习笔记:虚拟环境和包的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。