python虛擬環境的使用

2021-10-02 21:32:28 字數 2623 閱讀 4147

在我們的 python 應用中會用到各種各樣的包庫,有的時候不同的應用程式需要不同的特定的版本庫。

要是全都安裝在主機的 python 中,會出現版本衝突、版本混亂,進而導致我們的程式出現各種問題,而且還不能很精準的定位到問題,從而影響開發效率。

所以,為了方便不同專案間的包庫管理,我們需要用到虛擬環境,不同的虛擬環境之間是完全隔絕的,我們可以在專案裡使用當前專案所需要的包庫。

建立虛擬環境

python -m venv env_name env_dir
移動到虛擬環境目錄下

cd env_dir/env_name/scripts
啟用虛擬環境

activate
啟用成功

在路徑的前面出現 (venv)就表明虛擬環境啟用成功

(venv)..

..

pip install virtualenv
建立虛擬環境

virtualenv env_name
啟用虛擬環境

cd env_name\scripts

activate

通過虛擬環境,將不同的專案放在不同的虛擬環境下,當我們需要遷移我們的專案時,虛擬環境是很大的乙個資料夾,遷移起來會比較費時,費力,而且不能保證遷移的過程中不會出錯。

python 提供了 freeze 命令,它可以將當前環境的各個包庫、版本匯入到乙個 txt 中,這樣我們在遷移的時候只用遷移我們的專案主體就行,不需要再去遷移虛擬環境,使用的時候只需要將新建立乙個虛擬環境,並安裝 txt 檔案裡的包庫就行。

# 一般我們都用 requirements 來做文件名字,不建議更改

pip freeze > requirements.txt

# 不在同一目錄下建議將文件路徑寫全

pip install requirements.txt

我自己編寫了一段**,傳入路徑將 自動建立乙個虛擬環境,並自動更新所有的包到最新。

注: 因為包自動更新使用了 python3.9 的新用法,所以適用於 python3.9 以後的版本

# coding:utf-8

'''author : tina3201

file : mkenv.py

time : 2020/10/25 23:44

doc :

自動建立虛擬環境venv,並更新包到最新。

如果不想使用 venv 當作虛擬環境檔案的名稱,可以更換 venv 引數名。

注:使用了 python3.9 版本的新用法,所以適用於 python3.9 後的版本。

'''import os,sys

# 存放 虛擬環境 的資料夾名

venv =

"venv"

try:

# 可以在執行檔案時直接傳入 虛擬環境 放置的位置。

path = sys.ar**[1]

except

:# 執行檔案時沒有傳入檔案路徑,則自動設定path為空。

path =

""while

not path:

# 傳入 檔案路徑

path =

input

("請傳入 虛擬環境 所在的路徑:"

)# 判斷 path 的值是否正確(path是否存在、path路徑是否存在、是否是資料夾)

if path and os.path.exists(path)

and os.path.isdir(path)

:# 判斷 venv 是否已經存在

if os.path.exists(os.path.join(path, venv )):

print

(f"當前資料夾下已存在 資料夾"

) path =

""else

:print

("rasize:路徑不存在或者此路徑不是資料夾"

) path =

""finally

:# 切換到存放 虛擬環境 的資料夾下

os.chdir(path)

print

(f"path的值: \n當前路徑:"

, os.getcwd())

# 建立 venv 資料夾,並更新所有的包到最新版本。

# --upgrade-deps 是 python -m 建立虛擬環境python3.9後才能接受的新引數,也是自動更新到最新包的關鍵。

os.system(f"python -m venv --upgrade-deps "

)

Python 虛擬環境使用

python包很多,所以使用虛擬環境將包分開管理,比如py web包放在乙個虛擬環境中,爬蟲相關的包放在乙個虛擬環境中,也可以進行多版本的python環境的搭建 安裝 使用pip進行安裝 pip list 檢視安裝成功 建立虛擬環境 預設為本機python mkvirtualenv 虛擬環境的名字 ...

Python 虛擬環境使用

1.安裝 三 conda 四 pipenv pip install virtualenvvirtualenv 虛擬環境名稱 virtualenv env name 如果不使用系統的包,加上 no site packages 引數 virtualenv no site packages 建立路徑名稱 ...

Python使用虛擬環境

這裡想象一下需求,寫乙個專案使用的一系列1.0版本的外掛程式,現在要新寫乙個專案,需要用這些外掛程式的2.0版本,該怎麼辦?都更新成2.0版本?這樣之前的專案都沒法維護了 這時我們需要乙個虛擬環境,python就支援這樣乙個外掛程式,virtualenv 下面來安裝一下 1.pip3 install...