python虛擬環(huán)境venv、virtualenv配置方式
原理
虛擬環(huán)境是利用了操作系統(tǒng)中環(huán)境變量,以及進(jìn)程間環(huán)境隔離的特性,python就是在激活虛擬環(huán)境的時(shí)候,激活腳本會(huì)將當(dāng)前命令行程序的 PATH 修改為虛擬環(huán)境的,這樣執(zhí)行命令就會(huì)在被修改的 PATH 中查找,避免了找到原本的 PATH ,實(shí)現(xiàn)了 Python 環(huán)境的隔離。
創(chuàng)建、刪除虛擬環(huán)境
創(chuàng)建虛擬環(huán)境分為兩種:
- python3.3之前,只能通過 virtualenv 創(chuàng)建虛擬環(huán)境
- python3.3之后,可以用模塊 venv 代替 virtualenv 工具
下圖為pycharm中創(chuàng)建的虛擬環(huán)境:

用 virtualenv 創(chuàng)建虛擬環(huán)境:
pip install virtualenv virtualenv venv_1 # 這條命令創(chuàng)建一個(gè)名為 venv_1 的虛擬環(huán)境
用 venv 創(chuàng)建虛擬環(huán)境:
python3 -m venv venv_2 # 此處 venv_2 也是自定義的虛擬環(huán)境名字
如果不想在虛擬環(huán)境中下載系統(tǒng)中重復(fù)的包,可以使用該命令:
(允許虛擬環(huán)境訪問 system site packages 目錄,允許使用系統(tǒng)中安裝的第三方包)
方法一:
--system-site-pakage python3 -m venv --system-site-packages
方法二:
改動(dòng) venv 目錄下 pyvenv.cfg 文件:
include-system-site-packages=true
看安裝的包來自哪里:
pip list -v
刪除虛擬環(huán)境:
rm -rf 環(huán)境名
venv 命令幫助:
python -m -venv -h
激活、退出、初始化虛擬環(huán)境
如何激活虛擬環(huán)境:
(虛擬環(huán)境創(chuàng)建好后,需激活才能在當(dāng)前的命令行中使用,可以理解成將當(dāng)前命令行環(huán)境 PATH 變量的值替換掉)
(命令行界面)創(chuàng)建好虛擬環(huán)境后,cd 到 venv_2 中,再 cd 到 bin 中,輸入以下命令:
source activate # mac Scripts目錄下activate # windows
退出虛擬環(huán)境:
deactivate
初始化虛擬環(huán)境:
(需要在虛擬環(huán)境父目錄下執(zhí)行該條命令)
python -m venv --clear 環(huán)境名
導(dǎo)出、導(dǎo)入虛擬環(huán)境
將項(xiàng)目的依賴庫導(dǎo)出,作為代碼的一部分:
pip freeze>requirements.txt
導(dǎo)出的內(nèi)容在其他虛擬環(huán)境中可以導(dǎo)入:
pip install -r requirements.txt
pycharm+虛擬環(huán)境
結(jié)合pycharm:
①新建環(huán)境
new project # 選這個(gè)
②環(huán)境選擇
new environment using # 創(chuàng)建一個(gè)新的環(huán)境(會(huì)生成一個(gè)venv目錄) 選這個(gè)
Inherit global site-packages # 是否要繼承基礎(chǔ)解析器的第三方庫
Make available to all project # 是否將這個(gè)虛擬環(huán)境作為默認(rèn)的環(huán)境
existing interpreter # 使用已經(jīng)存在的解釋器
部署虛擬環(huán)境
部署虛擬環(huán)境流程:
①開發(fā)完成后,使用 pip freeze>requirements.txt 命令將項(xiàng)目的庫依賴導(dǎo)出,作為項(xiàng)目的一部分
②將代碼上傳到服務(wù)器
③在服務(wù)器上創(chuàng)建一個(gè)虛擬環(huán)境
④激活虛擬環(huán)境,執(zhí)行 pip install -r requirements.txt 安裝項(xiàng)目依賴

pycharm目錄下idea作用
創(chuàng)建環(huán)境時(shí),自動(dòng)創(chuàng)建的 .idea 作用:
.idea 保存 IDE 需要的和你當(dāng)前項(xiàng)目相關(guān)的一些配置,狀態(tài),比如說,你打開了N個(gè)文件,關(guān)了軟件,下次再打開,又給你恢復(fù)到你上次關(guān)閉時(shí)的狀態(tài),這些信息就在這里面了(你可以關(guān)閉后把.idea目錄刪掉再打開試試)
pycharm目錄下venv文件內(nèi)容含義

venv內(nèi)含文件含義:
- lib 文件夾下 site-package:包含使用 pip 安裝的依賴項(xiàng)(如request、flask等)。
- scripts文件夾:它包含激活文件(activate)、退出激活文件(deactivate)、pip.exe、python.exe等。
- pyvenv.cfg:可以通過該文件改變虛擬環(huán)境所指向的 PATH(如果創(chuàng)建虛擬環(huán)境后,想要手動(dòng)更改虛擬環(huán)境指向真實(shí)python環(huán)境,也可以通過該文件修改)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python來開發(fā)Markdown腳本擴(kuò)展的實(shí)例分享
這篇文章主要介紹了使用Python來開發(fā)Markdown腳本擴(kuò)展的實(shí)例分享,文中的示例是用來簡(jiǎn)單地轉(zhuǎn)換文檔結(jié)構(gòu),主要為了體現(xiàn)一個(gè)思路,需要的朋友可以參考下2016-03-03
從基礎(chǔ)到高級(jí)詳解Python對(duì)象序列化的實(shí)戰(zhàn)指南
在軟件開發(fā)中,對(duì)象序列化是一項(xiàng)至關(guān)重要的技術(shù),它允許將內(nèi)存中的復(fù)雜對(duì)象轉(zhuǎn)換為可以存儲(chǔ)或傳輸?shù)母袷?本文將展示如何在不同場(chǎng)景下選擇和應(yīng)用最合適的序列化方案,下面就跟隨小編一起了解下吧2025-09-09
Python+OpenCV繪制多instance的Mask圖像
Mask圖像中,不同值表示不同的實(shí)例(instance)。本文將詳細(xì)為大家講講如何利用OpenCV繪制多instance的Mask圖像,感興趣的可以學(xué)習(xí)一下2022-06-06
Python利用wxPython制作一個(gè)有趣的驗(yàn)證碼生成器
這篇文章主要為大家詳細(xì)介紹了Python如何利用wxPython制作一個(gè)簡(jiǎn)單有趣的驗(yàn)證碼生成器,文中的示例代碼講解詳細(xì),需要的小伙伴可以了解一下2023-04-04
Python 常用日期處理 -- calendar 與 dateutil 模塊的使用
這篇文章主要介紹了Python如何使用calendar 與 dateutil 模塊處理日期,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-09-09
Python使用pycharm導(dǎo)入pymysql教程
這篇文章主要介紹了Python使用pycharm導(dǎo)入pymysql教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09

