人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

Python 虛擬環(huán)境venv詳解

發(fā)布日期:2022-01-04 01:39 | 文章來源:腳本之家

什么是虛擬環(huán)境

  • 這是 Python 3.3 的新特性:https://www.python.org/dev/peps/pep-0405/
  • 假設(shè)自己電腦主機的 Python 環(huán)境稱為系統(tǒng)環(huán)境,而默認情況下,虛擬環(huán)境和系統(tǒng)環(huán)境是完全隔離的
  • 每個系統(tǒng)環(huán)境下可以有多個虛擬環(huán)境
  • 每個虛擬環(huán)境都有自己的 Python 二進制文件及單獨的包安裝目錄,可以在虛擬環(huán)境中安裝屬于自己的 Python 包,而系統(tǒng)環(huán)境、其他虛擬環(huán)境并不會擁有這些 Python 包

一句話總結(jié)

Python 虛擬環(huán)境主要是為不同 Python 項目創(chuàng)建一個隔離的環(huán)境,每個項目都可以擁有獨立的依賴包環(huán)境,而項目間的依賴包互不影響

為什么要虛擬環(huán)境

說下背景

  • 假設(shè)一個電腦包含多個 Python 項目
  • 每個項目所需的 Python 版本不一致,比如:Python 2.X、Python 3.X
  • 每個項目所需的依賴包不一致,比如 A 項目只要 Selenium 相關(guān)依賴包,B 項目只要 Appium 相關(guān)依賴包
  • 不同項目用同一個依賴包,但依賴包版本可能不一致

假設(shè)現(xiàn)在不用虛擬環(huán)境會有什么問題?

了解下第三方庫的安裝目錄

默認情況下,Python 第三方庫都是裝在系統(tǒng)固定目錄的,比如 Mac 電腦

>>> import site
>>> site.getsitepackages()
['/usr/local/Cellar/python@3.9/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages']

電腦上所有項目都會從這個目錄去存儲、查找第三方庫(站點庫)

帶來的問題

  • 不同項目使用同一個依賴包,但使用不同版本的依賴包時,意味著當開發(fā) A 項目的時候,要裝一次依賴包 A 版本,轉(zhuǎn)開發(fā) B 項目時,先要卸載依賴包 A 版本,再重裝 B 版本...
  • 一個環(huán)境下要安裝所有項目需要的依賴包,所以當某個項目需要生成 requirement.txt 的時候,會帶上很多用不上的依賴包,要刪還得手工一個個刪....

通過 venv 操作虛擬環(huán)境

Python 3.5 后推薦使用 venv 來創(chuàng)建虛擬環(huán)境

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

python3 -m venv fastapi_test

fastapi_test 是虛擬環(huán)境名字,可以自定義

激活虛擬環(huán)境

source <環(huán)境名稱>/bin/activate 

可以看到虛擬環(huán)境中的 Package 只有最基礎(chǔ)的 pip、setuptools

關(guān)閉虛擬環(huán)境

deactivate

Pycharm 項目關(guān)聯(lián)新創(chuàng)建的虛擬環(huán)境

先在項目目錄下創(chuàng)建好虛擬環(huán)境

Python Interpreter 選中虛擬環(huán)境

安裝項目所需要的庫

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

  • 選中 Python Interpreter
  • 查看更多 Interpreters
  • 添加一個新的 Interpreters
  • 選擇 New environment,默認選項即可,確定

查看虛擬環(huán)境的目錄

剛剛創(chuàng)建的兩個虛擬環(huán)境的目錄其實是一樣的

bin

與虛擬環(huán)境交互的文件

>> ll
total 72
-rw-r--r--  1 polo  staff8.6K Sep 14 09:26 Activate.ps1
-rw-r--r--  1 polo  staff1.9K Sep 14 09:26 activate
-rw-r--r--  1 polo  staff882B Sep 14 09:26 activate.csh
-rw-r--r--  1 polo  staff2.0K Sep 14 09:26 activate.fish
-rwxr-xr-x  1 polo  staff269B Sep 14 08:40 pip
-rwxr-xr-x  1 polo  staff269B Sep 14 08:40 pip3
-rwxr-xr-x  1 polo  staff269B Sep 14 08:40 pip3.9
lrwxr-xr-x  1 polo  staff  9B Sep 14 08:40 python -> python3.9
lrwxr-xr-x  1 polo  staff  9B Sep 14 08:40 python3 -> python3.9
lrwxr-xr-x  1 polo  staff 39B Sep 14 08:40 python3.9 -> /usr/local/opt/python@3.9/bin/python3.9

include

編譯 Python 包的 C 頭文件

lib

包含Python 版本的副本(python3.9),以及安裝每個依賴包的 site-packages 文件夾

>> pwd
/Users/polo/Downloads/FastAPI_project/fastapi_test/lib/python3.9/site-packages
>> ll
total 224
drwxr-xr-x3 polo  staff 96B Sep 14 09:27 __pycache__
drwxr-xr-x5 polo  staff160B Sep 14 08:40 _distutils_hack
-rw-r--r--1 polo  staff152B Sep 14 08:40 distutils-precedence.pth
drwxr-xr-x  28 polo  staff896B Sep 14 09:27 fastapi
drwxr-xr-x8 polo  staff256B Sep 14 09:27 fastapi-0.68.1.dist-info
drwxr-xr-x8 polo  staff256B Sep 14 08:40 pip
drwxr-xr-x  10 polo  staff320B Sep 14 08:40 pip-21.1.1.dist-info
drwxr-xr-x7 polo  staff224B Sep 14 08:40 pkg_resources
drwxr-xr-x  53 polo  staff1.7K Sep 14 09:27 pydantic
drwxr-xr-x9 polo  staff288B Sep 14 09:27 pydantic-1.8.2.dist-info
drwxr-xr-x  41 polo  staff1.3K Sep 14 08:40 setuptools
drwxr-xr-x  11 polo  staff352B Sep 14 08:40 setuptools-56.0.0.dist-info
drwxr-xr-x  27 polo  staff864B Sep 14 09:27 starlette
drwxr-xr-x8 polo  staff256B Sep 14 09:27 starlette-0.14.2.dist-info
drwxr-xr-x8 polo  staff256B Sep 14 09:27 typing_extensions-3.10.0.2.dist-info
-rw-r--r--1 polo  staff107K Sep 14 09:27 typing_extensions.py

從虛擬環(huán)境生成 requirement.txt

先看看有哪些包

> pip list
Package  Version
----------------- --------
fastapi  0.68.1
pip21.1.1
pydantic 1.8.2
setuptools  56.0.0
starlette0.14.2
typing-extensions 3.10.0.2

pip freeze

在激活虛擬環(huán)境下敲

pip freeze > requirement.txt  

這樣生成的 requirement.txt 文件就只包含虛擬環(huán)境中已安裝的依賴包了!

包管理利器 popety

TODO

到此這篇關(guān)于Python 虛擬環(huán)境venv詳解的文章就介紹到這了,更多相關(guān)Python 虛擬環(huán)境venv內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部