什么是虛擬環(huán)境?
虛擬環(huán)境主要是為了獨立多個 Python 解釋器環(huán)境出來氛改。這有什么用呢?
比如你在網(wǎng)上下了一個 Python 的開源系統(tǒng)恬口,其中用到了 Django 1.11 版本,而你現(xiàn)在系統(tǒng)環(huán)境中安裝的是 Django 2.2 的版本沼侣,那你現(xiàn)在是卸載掉 2.2 的版本重新安裝 1.11 的版本祖能?
但是又有其他的相同用到了 Django 2.2 的版本,這就尷尬了蛾洛。那么你可以通過建立虛擬環(huán)境养铸,讓這兩個版本都能并存。需要用 1.1 版本的就使用虛擬環(huán)境雅潭,在其中安裝 1.1 的版本揭厚,而另外的項目就用系統(tǒng)環(huán)境中的 2.2 版本。
而且不同的項目用到的庫不一樣扶供,如果全部下載到系統(tǒng)環(huán)境的話就會有非常多的庫筛圆,系統(tǒng)環(huán)境會變的非常臃腫。
虛擬環(huán)境相當于從系統(tǒng)環(huán)境中復制一套 Python 的運行環(huán)境椿浓,有獨立的 Python 運行文件太援,也有獨立的 pip。虛擬環(huán)境可以創(chuàng)建無數(shù)套扳碍,并且互不影響提岔,同時也不會影響到系統(tǒng)環(huán)境。
如果你是初學者笋敞,接觸的庫不多碱蒙,用到的同一個庫不同版本的情況不多,可以不使用虛擬環(huán)境夯巷。當你逐漸深入掌握 Python 后就會用到赛惩。
如何創(chuàng)建虛擬環(huán)境?
有兩種方式趁餐,早期(Python3.4以前)創(chuàng)建虛擬環(huán)境需要專門下載一個 virtualenv
庫喷兼。3.4 以后的版本自帶了 venv 命令,與 virtualenv 具有相同的效果后雷。
如果需要使用 virtualenv 需要pip install virtualenv
然后使用virtualenv
命令季惯。或者直接使用 venv 命令python -m venv
臀突。(兩個命令效果一致)
創(chuàng)建虛擬環(huán)境命令如下:
python -m venv -p Python.exe路徑 --no-site-packages D:\PythonProject\my_django\venv
-
-p Python.exe路徑:如果你電腦上有多個 Python 版本勉抓,需要通過指定 python.exe 文件來指定系統(tǒng)環(huán)境的 Python,如
-p C:\python36\python.exe
- --no-site-packages:不拷貝系統(tǒng)環(huán)境中的第三方庫候学,其實默認也不會拷貝
- D:\PythonProject\my_django\venv:虛擬環(huán)境創(chuàng)建的位置
其實藕筋,你也可以不用這么麻煩,如果你只有一個 Python 版本盒齿,那么直接使用下面的命令即可:
python -m venv D:\PythonProject\my_django\venv
我們可以看到在我們指定的目錄下創(chuàng)建了一系列的文件:
其實念逞,這就是虛擬環(huán)境啦困食。只是除了這些文件外還沒什么感覺。那如何使用呢翎承?
激活虛擬環(huán)境
一般你使用的 IDE 工具硕盹,比如 Pycharm 會自動激活指定的虛擬環(huán)境,并使用虛擬環(huán)境中的 Python.exe 來運行代碼叨咖,也只使用虛擬環(huán)境中已安裝的庫瘩例,使用 pip 也是下載到虛擬環(huán)境。
這就是為什么很多同學在初學過程中甸各,使用 Pycharm 這樣的工具時垛贤,通過 pip 命令下載的第三方庫在寫代碼的時候引入失敗的原因了。
Pycharm 每次創(chuàng)建項目時默認會創(chuàng)建一個虛擬環(huán)境趣倾。
你在不知不覺中就使用了虛擬環(huán)境聘惦。
如果我們要在命令行使用虛擬環(huán)境中的 Python 來運行 py 文件的話,就需要手動激活儒恋。
激動方式是善绎,先進入虛擬環(huán)境目錄中的Scripts
目錄,如D:\PythonProject\my_django\venv\Scripts
诫尽。然后使用 activate 命令來激活當前虛擬環(huán)境禀酱。
$ cd D:\PythonProject\my_django\venv\Scripts
$ activate
你會看到在命令提示符前面多了個(venv)
字樣:
接下來,你輸入的 Python 命令和 pip 命令都是在當前的虛擬環(huán)境下執(zhí)行了牧嫉,不會影響到系統(tǒng)環(huán)境剂跟。
如果你想要退出虛擬環(huán)境,使用命令deactivate
即可酣藻。