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

歡迎訪問 生活随笔!

生活随笔

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

python

python 虚拟环境_理解Python虚拟环境

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

什么是環境

既然有所謂的 虛擬環境(Virtual Environment),那么首先有必要解釋一下,什么是環境。

這里的環境,指的就是 Python 代碼的運行環境。它應該包含以下信息:

  • Python 解釋器,用哪個解釋器來執行代碼?
  • Python 庫的位置,該去哪里 import 所需要的模塊呢?
  • 可執行程序的位置,比如說安裝了 pip,那么 pip 命令是在哪里呢?

其中第 1 個是最主要的,后面 2 個基本是圍繞它確定的。

如果看了我在 安裝 Python 詳解 里對安裝后的文件夾的說明,應該很清楚了,就是:

  • python.exe
  • Lib 文件夾,包括其中的 site-packages
  • Scripts 文件夾

sys.path

當我們說包的路徑就在 Lib 和 site-packages 文件夾里的時候,雖然大多數的情況下就是這樣的,但是實際上并不準確。

包的搜尋路徑是通過 Python 系統中的一個變量決定的,也就是 sys.path,我們先來打印一下看看:

>>> import sys >>> from pprint import pprint >>> pprint(sys.path) ['', # 注意,別忽視了第 1 個'C:UsersDavyAppDataLocalProgramsPythonPython38python38.zip','C:UsersDavyAppDataLocalProgramsPythonPython38DLLs','C:UsersDavyAppDataLocalProgramsPythonPython38lib','C:UsersDavyAppDataLocalProgramsPythonPython38','C:UsersDavyAppDataRoamingPythonPython38site-packages','C:UsersDavyAppDataLocalProgramsPythonPython38libsite-packages'] >>>“ pprint 是內置的 pretty-print 模塊,可以自動換行,讓打印結果好看一點。

注意:第 1 項是一個空字符串,它代表的是當前路徑,也就是你啟動程序的地方。比如說,我們默認情況下進入命令行就自動進入到當前用戶的目錄,例如 C:UsersDavy,那么當前目錄就是這個。

如果你還感到疑惑,可以用下面的語句打印出絕對路徑:

>>> import os.path >>> os.path.abspath('') 'C:UsersDavy'

除了第一項,這個列表里最常用的就是最后一項,這個在 Python 安裝詳解 中有過說明。

什么是虛擬環境

知道了什么是環境,再來理解什么是虛擬環境就非常容易了。

簡而言之,虛擬環境就是 Python 環境的一個副本。

要得到這么一個副本,首先:

  • 要給它單獨找個文件夾存起來
  • 要給它取個名字

這個文件夾的名字也就是這個虛擬環境的名字,在這個文件夾下面有這些東西:

  • 一個 python.exe
  • 一個 Scripts 目錄
  • 一個 Lib 目錄

這里和普通環境有 2 點不一樣的地方:

  • python.exe 也放在了 Scripts 目錄下面(原因下面會講)
  • Lib 目錄下面只有 site-packages 目錄

讓我們來試一下。

venv 模塊

在 Python 2.x 的時候,創建虛擬環境還需要安裝第三方的 virtualenv,但是自從 Python 3.3 版本之后,標準庫里內置了 venv 模塊,可以用來創建虛擬環境。

在命令行中使用下面的命令來快速創建一個虛擬環境:

C:UsersDavy>python -m venv venvdemo

上面的命令會在當前目錄下,新建一個名為 venvdemo 的虛擬環境。里面的文件夾:

其中 Include 基本不用管,Lib 目錄下也沒什么特別的,主要就是 Scripts 目錄:

其中多出了 activate 和 deactivate 用來 激活 和 去激活 虛擬環境。

“ activate 有多個后綴的文件,適配多個環境,敲命令的時候不需要帶后綴

讓我們來激活試試:

C:UsersDavy>venvdemoScriptsactivate

注意到一點,激活的時候我們需要指定 activate 完整的路徑,因為它所在的目錄并不在 PATH 環境變量之中。

激活之后,我們就進入了虛擬環境,這時候不管是執行 python 還是 pip 針對的都是虛擬環境里面的。

其實這也沒什么神奇的操作,激活只不過就是把虛擬環境的 Scripts 目錄臨時添加到了 PATH 環境變量的第一位。

這里也解釋了,為啥要把 python.exe 也放到了 Scripts 目錄下,因為這樣只需要加一個路徑到環境變量中即可。

同時這也提醒我們注意,不是只有激活才能進入虛擬環境,我們如果把當前路徑切換到了虛擬環境的 Scripts 目錄下,啟動 python 也是在虛擬環境中了。

繼續打印一下 sys.path 看看:

(venvdemo) C:UsersDavy>python Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> from pprint import pprint >>> import sys >>> pprint(sys.path) ['','C:UsersDavyAppDataLocalProgramsPythonPython38python38.zip','C:UsersDavyAppDataLocalProgramsPythonPython38DLLs','C:UsersDavyAppDataLocalProgramsPythonPython38lib','C:UsersDavyAppDataLocalProgramsPythonPython38','C:UsersDavyvenvdemo','C:UsersDavyvenvdemolibsite-packages']

可以看到相對于上面普通的系統環境,最下面的兩條發生了變化,注意其中的第 4 條路徑 'C:UsersDavyAppDataLocalProgramsPythonPython38lib',它正是標準庫的路徑。

我們在執行去激活的時候,就不用再指定完整的路徑了。

為什么要有虛擬環境

當我們安裝一個 Python 程序或者庫的時候,一般情況下我們雖然是想要安裝 1 個包,比如說, pip install django。然而實際安裝的都是一堆包。這些包默認都會安裝到 Python 環境的 site-packages 目錄下面。

下次再安裝其它包時,也是如此。因為同一個庫,只能在一個環境中存在一份,那么這其中如果發現了某個依賴包已經存在,只能大家公用。

這樣下去,說不定哪一天這中間就出現了版本不兼容。

使用虛擬環境

因為虛擬環境的必要性,現在大多數的 Python 開發工具都支持虛擬環境的相關操作。

具體每個工具有所不同,但是一般只需要注意一點即可:指定虛擬環境中 python.exe 的位置。一旦確定了它的位置,就確定了環境的位置。也就不用每次都去激活。

“ 仔細觀察,虛擬環境中的 python.exe 和系統中的 python.exe 并不完全一樣。

保存虛擬環境

我們知道在使用 pip install 的時候可以通過 -r 選項指定一個 requirements 文件,這樣就能批量安裝所有依賴。

在 requirements 里面可以精確的指定安裝包版本,有效地避免不兼容問題。

執行 pip freeze 可以把當前環境安裝的包以 requirements 的格式輸出。

(venvdemo) C:UsersDavy>pip freeze asgiref==3.2.3 Django==3.0.3 pytz==2019.3 sqlparse==0.3.0

把輸出結果保存到文件中就可以了,這樣我們就精確的得到當前環境的版本信息,可以再其它地方重建這個環境。


“ 文章內容雖基礎,整理發布不輕松
如果看過有幫助,不妨 點贊 + 關注,謝謝!

總結

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

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

主站蜘蛛池模板: 亚洲一区二区自拍 | 在线精品一区二区 | 春意影院福利社 | 久久久精品福利 | 中文字幕在线播放一区二区 | 影音先锋中文字幕在线视频 | 久久免费视频99 | 灌篮高手全国大赛电影 | 久久色播 | 91区国产| 波多野结衣视频免费 | 欧美日韩69 | 激情瑟瑟| 妺妺窝人体色www在线小说 | 久久91视频 | 久久国产精品久久久久 | 美日韩av在线 | 久久久久久久久久久电影 | 国产一级片一区二区 | 91精品久久久久久综合五月天 | 国产女教师一区二区三区 | 一本大道伊人av久久综合 | 日韩午夜在线观看 | 好吊色综合 | 男女国产视频 | 国产伦精品一区二区三区网站 | 国产精品视频网站 | 一本一道久久a久久综合蜜桃 | 激情婷婷综合 | 亚洲国产精品成人综合久久久 | 亚洲欧美在线一区二区 | 宅男在线视频 | 亚洲在线看 | 美女福利视频在线 | 国产精品视频久久久久久久 | 男人天堂亚洲 | 欧美成人vr18sexvr | 久久亚洲av午夜福利精品一区 | 久久久久久国产精品一区 | 欧美性受黑人性爽 | 亚洲aa视频 | 国产精品国产精品国产专区不卡 | 高潮在线视频 | 欧美日韩一级二级三级 | 五月亚洲婷婷 | yy6080午夜| 欧美激情一二区 | 初尝黑人巨炮波多野结衣 | 中文字幕一区二区三区电影 | 国产一区麻豆 | 性久久| 男人操女人动态图 | 国产欧美一区二区三区在线看蜜臂 | 久草成人在线视频 | 日日躁夜夜躁白天躁晚上躁91 | 欧美爽妇| 久久av无码精品人妻出轨 | 成人在线视频一区二区三区 | 精品91av| 国产亚洲欧美在线 | 精品久久久久久无码人妻 | av免费在线观看网站 | 在线免费福利 | 久久精品夜 | 亚洲黄a| 国产精品久久久久久亚洲av | 欧美国产成人精品一区二区三区 | 久久久123 | 亚洲性xx| 91自啪| 精品人妻一区二区三区日产乱码卜 | 男人添女人下部高潮视频 | 天天操天天干视频 | 看黄色的网站 | 国产经典一区二区三区 | 欧美乱做爰xxxⅹ久久久 | 日韩欧美视频免费在线观看 | 星空大象在线观看免费播放 | 日韩女同互慰一区二区 | 久久一区二区三区精品 | 麻豆国产精品 | 无码国产精品一区二区免费16 | 中国黄色一级视频 | 欧美激情动态图 | 激情毛片视频 | 国产一区二区在线免费 | 日韩av在线看 | 隔壁邻居是巨爆乳寡妇 | 国产一区2 | 国产二区视频在线观看 | 日本在线加勒比 | 久草网视频在线观看 | 亚洲国产三区 | 中文字幕一区二区在线观看视频 | 尤物视频免费观看 | 午夜激情电影院 | 亚洲色鬼 | 久久亚洲影院 | 日本日韩欧美 |