日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python虛擬環境模塊venv使用及示例

瀏覽:70日期:2022-08-04 10:55:05

相信只要學習python的同學對于虛擬環境這個概念肯定不會太陌生,虛擬環境指的是一個個單獨隔離的python開發環境。各個虛擬環境之間互不干擾,都有自己獨立的開發包。就像是在電腦上裝了很多個虛擬機,每個虛擬機里面你隨便折騰,不會影響到物理機,也不會影響到其他虛擬機。

既然這么有用,那么Python里面用來創建虛擬環境的模塊virtualenv是怎么使用的呢?我們一起來看一下。

virtualenv基本命令格式

這個模塊比較簡單,它只有一條命令,但是跟的選項比較多,就是通過不同的選項來控制生成不同的虛擬環境。我們先來簡單看一下它的基本命令格式:

virtualenv [--version] [--with-traceback] [-v | -q] [--app-data APP_DATA] [--clear-app-data] [--discovery {builtin}] [-p py] [--creator {builtin,cpython3-win,venv}] [--seeder {app-data,pip}] [--no-seed] [--activators comma_sep_list][--clear] [--system-site-packages] [--copies] [--download | --no-download] [--extra-search-dir d [d ...]] [--pip version] [--setuptools version] [--wheel version] [--no-pip] [--no-setuptools] [--no-wheel][--symlink-app-data] [--prompt prompt] [-h]dest

乍一看,選項怎么這么多,一下子就能把人看暈,這還怎么學。但是在最開始使用的時候,常用的參數就只有下面兩個:

-p py 用于選擇python解釋器版本的 dest 要存放虛擬環境的目錄,一般是項目目錄 --prompt prompt 設置虛擬環境命令提示符前端提示。

參數比較抽象,我們還是通過具體的例子來實踐,

示例

先打開cmd命令行窗口,執行python命令,確認你的python包安裝正確。如下所示:

C:UsersAdministrator>pythonPython 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32Type 'help', 'copyright', 'credits' or 'license' for more information.>>>

然后我們來安裝好virualenv模塊,命令是:

C:UsersAdministrator>pip install virtualenvLooking in indexes: http://pypi.doubanio.com/simpleCollecting virtualenv Downloading http://pypi.doubanio.com/packages/c1/61/7506ddd79ef6f09beeefb81c4c55bf395a8ad96b33ff1c6b06e40f8aa101/virtualenv-20.0.7-py2.py3-none-any.whl (8.0 MB) |????????????????????????????????| 8.0 MB 6.8 MB/s......Installing collected packages: virtualenvSuccessfully installed virtualenv-20.0.7

中間省略了一部分輸出容,但是可以看到virtualenv模塊安裝成功。然后我們就來創建一個新的虛擬環境:

C:UsersAdministrator>virtualenv myprojectcreated virtual environment CPython3.7.3.final.0-64 in 6317ms creator CPython3Windows(dest=C:UsersAdministratormyproject, clear=False, global=False) seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=C:UsersAdministratorAppDataLocalTemptmpsvdy5dr2seed-app-datav1) activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

這里的虛擬環境目錄名詞是myproject,就這么簡單的命令創建了一個虛擬環境。它位于myproject目錄下。創建過程中如果沒有報錯就說明創建成功,同時它還指出了虛擬環境的Python版本,可以看到,就是我們系統當前安裝的虛擬版本。我們查看一下這個目錄:

C:UsersAdministratordir myproject2020/03/02 17:04 <DIR> .2020/03/02 17:04 <DIR> ..2020/03/02 17:04 <DIR> Lib2020/03/02 17:04316 pyvenv.cfg2020/03/02 17:04 <DIR> Scripts

可以看到里面有兩個目錄和一個文件,

Lib目錄是必須的庫文件目錄, Scripts是虛擬環境的二進制命令文件目錄以及啟動器所在目錄。啟動器就是待會我們要用來激活虛擬環境的目錄。 pyvenv.cfg文件是這個虛擬環境的配置文件

我們來嘗試激活這個虛擬環境,命令如下:

# 切換到虛擬環境目錄C:UsersAdministrator>cd myproject# 激活虛擬環境C:UsersAdministratormyproject>Scriptsactivate

此時沒有任何輸出,而且命令提示符的窗口也沒有任何改變,怎么判斷虛擬環境已經激活成功了呢?我們使用pip命令來判斷一下,:

C:UsersAdministratormyproject>pip listPackage Version---------- -------pip 20.0.2setuptools 45.2.0wheel 0.34.2

可以看到,這個時候的pip安裝的包只有三個,分別是pip、setuptools、wheel。而我們實際的系統環境因為我一直在使用,我重新打開一個命令提示符窗口,直接執行pip list命令結果如下:

C:UsersAdministrator>pip listPackage Version------------------ ----------ip19.0.3appdirs 1.4.3attrs 19.3.0backcall 0.1.0bleach 3.1.0colorama 0.4.3decorator 4.4.1defusedxml 0.6.0distlib 0.3.0Django 2.2....

說明我們的虛擬環境確實激活成功了,只是看起來不明顯。但是這個時候虛擬環境確實已經可以使用了。那么使用完畢后該怎么退出呢?啟動是activate,那么退出就是deactivate。如下所示:

C:UsersAdministratormyproject>Scriptsdeactivate.batC:UsersAdministratormyproject>pip listPackage Version------------------ ----------ip19.0.3appdirs 1.4.3attrs 19.3.0backcall 0.1.0bleach 3.1.0colorama 0.4.3decorator 4.4.1defusedxml 0.6.0distlib 0.3.0Django 2.2entrypoints 0.3

執行完deactivate命令后,再執行pip list命令,可以看到輸出的是系統python的路徑,這個時候說明已經從虛擬環境退出了。

但是這個過程確實不太明顯,那么能不能把 虛擬環境弄的更明顯一點呢,我們來看看--prompt這個選項的用法:

C:UsersAdministrator>virtualenv --prompt myproject2 myproject2

創建一個新的虛擬環境叫做myproject2,但是使用了--prompt myproject2的選項參數,我們再來嘗試激活一下看看:

C:UsersAdministrator>cd myproject2C:UsersAdministratormyproject2>Scriptsactivatemyproject2C:UsersAdministratormyproject2>Scriptsdeactivate.batC:UsersAdministratormyproject2>

這個時候很明顯就可以看到,在命令提示符前端出現了一個myproject2的提示,而當我們執行deactivate腳本后,提示符消失,說明回到了正常的環境。

這樣就比較明顯了。

上面的兩個例子演示的是直接使用系統版本python安裝的虛擬環境,既然是虛擬環境,那么python的版本能不能切換呢?我們來嘗試一下-p選項的用法。

C:UsersAdministrator>virtualenv --prompt (myproject3) -p python3.8 myproject3PEP-514 violation in Windows Registry at HKEY_LOCAL_MACHINE/PythonCore/2.7/InstallPath error: missingRuntimeError: failed to find interpreter for Builtin discover of python_spec=’python3.8’

在上面的示例中,我嘗試創建以python3.8來創建myproject3這個項目,但是失敗了。它在系統里沒有找到python3.8的版本。我們知道,在windows中,不同的python是可以安裝在不同的目錄中,但是你系統使用哪個版本,就把哪個版本的路徑添加到系統的環境變量最前面即可。剛才的例子里看到我目前使用的主版本是3.7.3,這個時候如果想要使用python3.8來創建虛擬環境的話,就需要告知3.8版本的實際路徑:

C:UsersAdministrator>virtualenv --prompt (myproject3) -p 'D:Program Files (x86)Python38python.exe' myproject3created virtual environment CPython3.8.2.final.0-64 in 6798ms creator CPython3Windows(dest=C:UsersAdministratormyproject3, clear=False, global=False) seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=C:UsersAdministratorAppDataLocalTemptmpxuz4d8ysseed-app-datav1) activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

這個時候就可以創建成功了,這里有兩點需要注意:

必須給出python.exe文件的絕對路徑 路徑中如果有空格,則必須使用雙引號括起。

創建成功以后,我們嘗試激活

C:UsersAdministrator>cd myproject3C:UsersAdministratormyproject3>Scriptsactivate(myproject3)C:UsersAdministratormyproject3>pythonPython 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)] on win32Type 'help', 'copyright', 'credits' or 'license' for more information.>>>

可以看到,確實是3.8.2版本的Python,此時新版本的虛擬環境創建成功。

基本用法就是這么兩個,linux系統下的操作和這里的類似,大家可以自己去嘗試一下,如果有遇到什么問題可以留言和阿飛一起討論。

實際使用的其他參數可以看一下下面的參數解析,寫的比較詳細,大家可以根據自己的需要來查看。

參數解析

如果將virtualenv的所有參數進行分類,主要分為下面幾類:

1. 只用于輸出信息的,包括下面幾個:

--version 輸出virtualenv版本信息 -h, --help 輸出virtualenv幫助信息 --with-traceback,在創建虛擬環境失敗的時候,輸出追蹤信息。 -v, --verbose,設置輸出信息等級,一般用于增加信息輸出等級,默認值是2 -q, --quit,設置輸出信息等級,一般用于降低信息輸出等級,默認值是0

最后兩個選項這里要解釋一下,信息輸出等級指的是virtualenv在執行命令過程中輸出的信息等級,分為5個類,對應的值分別是:

CRITICAL 0 災難級信息 ERROR 1 錯誤級信息 WARNING 2 警告級信息 INFO 3 普通信息 DEBUG 4調試信息 NOTEST 5 非測試信息

也就是說-q/--quit是將信息級別設置為CRITICAL,即只有災難級信息才會輸出,-v/--verbose 后面跟上對應的值,即可調整對應的信息級別。例如-v 4,即將信息級別調整為DEBUG級別。

2. 通用設置

即在使用virualenv命令的時候全局通用的配置,主要有:

--app-data APP_DATA 用于配置virutalenv使用的緩存目錄,默認是<temp 目錄>,對于windows系統通常是%USERPROFILE%AppDataLocalTemp這個目錄,對于linux系統是/tmp目錄。 --clear-app-data virtualenv啟動的時候使用空的app數據目錄,默認值False,即默認使用緩存目錄,便于加快虛擬環境創建。

3. 發現

發現這個配置是用來查找目標Python解釋器的,當你創建虛擬環境的時候,你的虛擬環境以哪個Python解釋器版本作為模板來創建呢?這個時候就需要用到發現這個組件來查找了。對應的選項有:

--discovery {builtin} 解釋器發現方法,默認值builtin,即內置的發現組件。現在好像只有這一個可以選擇。也就是說,這個選項目前對于普通用戶來說沒什么用。除非你能夠自己實現一個發現組件。 -p py, --python py,用于創建虛擬環境的目標python解釋器,即以這個參數指定的python解釋器版本來創建虛擬環境。默認值是你當前安裝virutalenv的python解釋器。它有兩種格式,分別是: I. python解釋器的絕對路徑。 II. python版本的字符串表示,字符串的格式是{實現名稱}{版本}{架構},例如python3.8.1, cpython3等。

4. 創造器(creator)

創造器在virtualenv里的作用是,實際執行虛擬環境創建過程的工具。它對應的選項有:

--creator {builtin, cpyhon3-win, venv},即通過哪個python解釋器來創建虛擬環境,默認是builtin,即安裝virtualenv的python版本。 dest,即安裝虛擬環境的目標目錄,可以使用相對路徑和絕對路徑 --clear,當目標目錄存在的時候,會移除目標目錄,或者覆蓋目標文件,默認值False --system-site-packages, 允許虛擬環境訪問系統site-packages目錄,默認值False --copies, --always-copy,使用復制而不是鏈接來創建虛擬環境,即使平臺的默認配置是使用鏈接的方式。默認值True。創建虛擬環境有兩種方式,第一種是復制模板Python里的文件到虛擬環境中,第二種方式是從模板Python那里創建軟鏈接到虛擬環境中,第二種速度更快,但是虛擬環境受到模板Python的影響也更大。因此一般推薦使用copy的方式。

5. 種子器(seeder)

種子器指的是什么呢?我們知道python的包管理軟件是pip,但是還有另外兩個管理軟件,分別是setuptools和wheel。而種子器就是決定虛擬環境中,安裝這三個軟件中的哪幾個。有了包管理軟件,才能安裝更多的包。就像種子發芽成熟后能結出更多的種子。所以叫seeder這樣一個名字。對應的選項有:

--seeder {app-data, pip},種子包安裝方法,默認值app-data,即從緩存目錄里安裝。 --no-seed, --without-pip,即不安裝種子包(默認值False) --download 從PyPI上下載安裝最新版本的pip/setuptools/wheel,默認值False --no-download, --never-download,不下載最新版的pip/setuptools/wheel,默認值True --extrea-search-dir,種除了默認的Python安裝的包以外,種子器可能會使用的包含其他包的路徑,默認值是[] --pip version, --wheel version, --setuptools version,要安裝的pip,wheel,setuptools版本,默認值都是latest --no-pip,--no-wheel,--no-setuptools,不安裝pip,wheel,setuptools,默認值都是False --symlink-app-data,從app-data目錄鏈接python包到虛擬環境(目前還不支持,要求種子pip>=19.3,默認值False)

6. 啟動器(activator)

虛擬環境配置好以后,我們怎么進入到虛擬環境,以及怎么讓虛擬環境里的配置生效呢?這個時候就需要用到啟動器了,啟動器的作用是,在shell或者系統的環境變量里面,把虛擬環境的可執行命令路徑添加到最前面。保證在虛擬環境中,最先找到的命令是虛擬環境里的命令。同樣的,當虛擬環境用完以后,我們需要回到正常的環境,這個時候還需要提供虛擬環境的關閉功能。這兩個功能都是在啟動器里實現的。它對應的配置選項有:

--activator comma_sep_list, 要生成的啟動器列表,用逗號分隔。因為你在不同的系統中使用的是不同的shell,例如linux中有bash、tcsh、dash、zsh等,windows中有powershell,cmd等。因此針對不同的環境需要使用不同的啟動器。這個參數就是讓你說明你要生成哪些環境的啟動器。 --prompt prompt,在進入到虛擬環境的時候,一般都會在命令提示符的最前面標識出虛擬環境的名稱,便于區分實際環境和虛擬環境。而這個名稱就是通過這個參數來配置的。

到此這篇關于python虛擬環境模塊venv使用及示例的文章就介紹到這了,更多相關python虛擬環境模塊venv內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩大片在线| 欧美日韩伊人| 欧美日韩一区二区三区不卡视频| 亚洲91视频| 97人人精品| 久久永久免费| 欧美在线精品一区| 在线视频精品| 欧美女激情福利| 人人香蕉久久| 成人免费电影网址| 国产精品成人a在线观看| 欧美精品第一区| 久久av资源| 国产精品美女久久久| 亚洲国产综合在线看不卡| 99精品综合| 日韩视频一区| 三级亚洲高清视频| 久久一二三区| 亚洲精一区二区三区| 午夜性色一区二区三区免费视频| 91成人超碰| 999在线观看精品免费不卡网站| 亚洲激情中文在线| 久久电影一区| 久久亚洲不卡| 日韩不卡在线观看日韩不卡视频| 日韩国产欧美视频| 热久久久久久久| 日韩激情精品| 国产精品v日韩精品v欧美精品网站| 久久久久久亚洲精品美女| 成人精品中文字幕| 99在线精品免费视频九九视| 亚洲影视一区| 国产精品一二| 高清日韩欧美| 久久免费大视频| 在线综合亚洲| 日韩精品午夜视频| www.com.cn成人| 日韩高清在线不卡| 成人久久久久| 日本va欧美va精品发布| 91精品一区二区三区综合在线爱 | 女同性一区二区三区人了人一| 日韩国产成人精品| 美女少妇全过程你懂的久久| 国产午夜精品一区在线观看| 欧美99久久| 日产精品一区二区| 日韩黄色免费网站| 九一国产精品| 麻豆视频在线观看免费网站黄| 日韩一区二区三区四区五区| 国产精品久久久久av电视剧| 日本h片久久| 野花国产精品入口| av高清不卡| 精品视频网站| 国产乱码精品一区二区三区四区| 在线亚洲精品| 99热国内精品| 国产一区二区三区黄网站| 日韩欧美中文字幕在线视频| 五月天激情综合网| 成人黄色av| 国产乱码精品一区二区亚洲| 老牛影视一区二区三区| 99久久九九| 精品日韩在线| 欧美日韩一区二区三区四区在线观看| 国产亚洲精品久久久久婷婷瑜伽| 日韩成人高清| 国产69精品久久| 美女性感视频久久| 国产精品一卡| 国产探花一区| 欧美亚洲国产日韩| 日韩精品欧美成人高清一区二区| 亚洲欧美日韩国产一区二区| 午夜精品婷婷| 99视频在线精品国自产拍免费观看| 久久久精品五月天| 久久久天天操| 亚洲精品一级二级| 日韩1区2区| 正在播放日韩精品| 桃色av一区二区| 国产成人精品一区二区三区视频| 国产精品4hu.www| 国产精品天堂蜜av在线播放| 国产九九精品| 美女久久久久久 | 日韩一区精品| 91精品麻豆| 欧美日韩亚洲国产精品| 国产日韩欧美一区在线| 日本vs亚洲vs韩国一区三区二区| 亚洲精品中文字幕乱码| 红桃视频国产精品| 香蕉视频成人在线观看| 美女91精品| 午夜性色一区二区三区免费视频| 亚洲一二av| 伊人久久大香伊蕉在人线观看热v| 在线一区二区三区视频| 亚洲精品无播放器在线播放| 日韩在线a电影| 日韩不卡在线观看日韩不卡视频 | 蜜桃久久av一区| 日韩一区二区三区四区五区| 日韩精品一区二区三区av| 久久国产88| 欧美一区91| 黄色精品视频| 欧美高清一区| 亚洲香蕉视频| 国产精品啊v在线| 日韩在线第七页| 99在线观看免费视频精品观看| 亚洲在线久久| 麻豆一区在线| 欧美一级精品| 亚洲美女91| 美腿丝袜亚洲三区| 日韩精品一区二区三区免费观看| 在线视频观看日韩| 伊人www22综合色| 麻豆视频观看网址久久| 久久精品亚洲欧美日韩精品中文字幕| 好看不卡的中文字幕| 日本成人在线网站| 国产精品毛片一区二区在线看| 九一成人免费视频| 日本成人手机在线| 国产精品13p| 亚洲一区av| 成人在线观看免费视频| 亚洲少妇诱惑| 精品少妇一区| 免费观看在线综合色| 国产极品一区| 夜夜精品视频| 日产精品一区二区| 一区二区三区午夜视频| 97在线精品| 亚洲欧洲av| 日韩免费高清| 国产香蕉精品| 久久亚洲一区| 日韩啪啪电影网| 久久激情综合网| 激情自拍一区| 麻豆91精品视频| 欧美综合二区| 国产精品99视频| 蜜桃91丨九色丨蝌蚪91桃色| 成人一区而且| 欧美一级二级三级视频| 一区二区三区四区在线看| 97久久中文字幕| 黄色欧美日韩| 日韩av福利| 久久一区国产| 日韩精品久久久久久久软件91| 日本精品不卡| 久久中文字幕导航| 色8久久久久| 91成人精品| 日韩伦理福利| 欧美91在线| 亚洲资源在线| 在线视频观看日韩| 国产999精品在线观看| 91亚洲无吗| 亚洲影视一区二区三区| 欧美1级日本1级| 欧美aa一级| 丰满少妇一区| 美女久久久精品| 国产调教精品| 午夜亚洲福利| 蜜桃一区二区三区在线观看| 免费av一区二区三区四区| 97视频热人人精品免费| 久久三级毛片| 国产三级精品三级在线观看国产| 亚洲欧美日韩国产| 亚洲黄色影院| 欧美日韩在线播放视频| 日韩欧美视频专区| 97精品一区二区| 久久精品国产网站| 欧美极品中文字幕| 国产高清亚洲| 麻豆一区二区三| 久久精品免费看| 精品久久免费|