首頁(yè)技術(shù)文章正文

如何創(chuàng)建一個(gè)虛擬的Python開(kāi)發(fā)環(huán)境?

更新時(shí)間:2023-03-08 來(lái)源:黑馬程序員 瀏覽量:

在實(shí)際開(kāi)發(fā)Flask程序時(shí),程序的不同版本可能會(huì)依賴不同的環(huán)境,這時(shí)需要在系統(tǒng)中安裝多個(gè)版本的Python解釋器或依賴包,如果直接在物理環(huán)境中進(jìn)行配置,那么多個(gè)版本的Python解釋器之間可能會(huì)產(chǎn)生干擾。為了解決這個(gè)問(wèn)題,我們需要使用virtualenv工具創(chuàng)建虛擬環(huán)境,以隔離不同版本的Python解釋器。

在使用virtualenv工具之前,我們需要先在計(jì)算機(jī)中安裝virtualenv工具。virtualenv工具可通過(guò)pip命令在線安裝,具體命令如下所示。

HTTP/1.1 200 OK

一臺(tái)計(jì)算機(jī)中可以創(chuàng)建多個(gè)虛擬環(huán)境,我們可以將不同版本的Python解釋器安裝到不同的虛擬環(huán)境中。

virtualenv 虛擬環(huán)境名
virtualenv -p Python解釋器的路徑虛擬環(huán)境名

上述命令中,第2行命令顯式指定了Python解釋器的安裝路徑。若通過(guò)第1行命令創(chuàng)建虛擬環(huán)境,則虛擬環(huán)境中使用的Python版本是由系統(tǒng)環(huán)境變量設(shè)置的Python解釋器決定的;若通過(guò)第2行命令創(chuàng)建虛擬環(huán)境,則虛擬環(huán)境中使用的Python版本是由用戶顯式指定的Python解釋器決定的。

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

例如,在E:\env_space目錄下通過(guò)第1行命令創(chuàng)建虛擬環(huán)境flask_env,具體命令如下所示。

E:\env_space> virtualenv flask_env

使用虛擬環(huán)境

若希望使用虛擬環(huán)境,需要執(zhí)行虛擬環(huán)境目錄Scripts下的activate文件。例如,使用剛剛創(chuàng)建的虛擬環(huán)境flask_env,具體命令如下所示。

E:\env_space>.\flask_env\Scripts\activate

上述命令執(zhí)行后,當(dāng)前工作環(huán)境會(huì)切換至虛擬環(huán)境flask_env ,并顯示虛擬環(huán)境的名稱flask_env,具體如下所示。

(flask_env) E:\env_space>

退出虛擬環(huán)境

使用deactivate命令可以退出當(dāng)前工作的虛擬環(huán)境。例如,使用deactivate命令退出虛擬環(huán)境flask_env,具體命令如下所示。

(flask_env) E:\env_space> deactivate
E:\env_space>

requirement.txt

不同的Flask項(xiàng)目可能會(huì)依賴不同的虛擬環(huán)境,若要在新計(jì)算機(jī)中運(yùn)行項(xiàng)目,就需要重復(fù)為該項(xiàng)目配置一套相同的虛擬環(huán)境,為了區(qū)分和記錄每個(gè)項(xiàng)目的依賴包及其版本,以便在新計(jì)算機(jī)中復(fù)現(xiàn)項(xiàng)目的虛擬環(huán)境,我們可以通過(guò)一個(gè)requirement.txt文件記錄項(xiàng)目的所有依賴包及其版本號(hào),以便在新計(jì)算機(jī)中實(shí)現(xiàn)一鍵安裝的效果。

requirement.txt

需要說(shuō)明的是,requirement.txt文件的名稱是開(kāi)發(fā)者之間約定俗成的,也可以進(jìn)行重新命名。requirement.txt文件的使用一般分為以下兩步。

(1)通過(guò)pip命令將虛擬環(huán)境依賴的擴(kuò)展包及其版本號(hào)記錄到requirement.txt文件中,具體命令如下所示。

pip freeze > requirements.txt

(2)在新計(jì)算機(jī)中,通過(guò)pip命令根據(jù)requirement.txt文件記錄的依賴包及其版本號(hào)安裝相應(yīng)版本的依賴包,具體命令如下所示。

pip install -r requirements.txt


分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!