如何解決vscode下powershell終端進入python虛擬環(huán)境venv問題
vscode下powershell終端進入python虛擬環(huán)境venv
vscode在python程序目錄下執(zhí)行終端命令venv創(chuàng)建python虛擬環(huán)境,也就是將python的工作環(huán)境打包到當(dāng)前目錄下。
> python -m venv venv
接著我們就可以看到自動生成了一個venv的目錄,里面其實就是python的各種執(zhí)行程序。
然后我們要在終端下進入這個venv的環(huán)境,之后使用pip安裝的各種模塊都會放在這個目錄下,而不是本機python的安裝目錄。
這樣的好處就是,之后pyinstaller生成exe方便,不會造成系統(tǒng)中的模塊太多,占地大。
如果你設(shè)置了終端是cmd.exe,那么接著我們執(zhí)行activate.bat
如果你設(shè)置的是pwsh.exe,即powershell,那么我們要執(zhí)行的是Activate.ps1
- 第一種情況好說,直接執(zhí)行后就可以了。
- 第二種情況,就需要先給powershell設(shè)置執(zhí)行腳本的權(quán)限。
在終端下執(zhí)行以下命令:
> pwsh.exe -ExecutionPolicy AllSigned
出現(xiàn)了這樣的選擇提示:可以選R和A,我選A了。
接著,就可以進入venv的子終端環(huán)境中了,前面加了個(venv )。
(venv) PS F:\PyCharmProject\togatest>
現(xiàn)在,再使用pip install xxxx,安裝的模塊包就會安裝在當(dāng)前目錄下了。
python虛擬環(huán)境venv的日常使用
虛擬環(huán)境venv介紹
官方介紹:
venv 模塊支持使用自己的站點目錄創(chuàng)建輕量級“虛擬環(huán)境”,可選擇與系統(tǒng)站點目錄隔離。
每個虛擬環(huán)境都有自己的 Python 二進制文件(與用于創(chuàng)建此環(huán)境的二進制文件的版本相匹配),并且可以在其站點目錄中擁有自己獨立的已安裝 Python 軟件包集。
個人需求、理解和使用場景:
- 在同一臺機器上運行的python項目文件需要不同的特定python版本,比如python2項目和python3項目
- 在編寫一些項目時,避免其他項目的模塊或者配置的干擾,獨立出一個單獨的python環(huán)境(相當(dāng)于在一臺純凈的機器上重新安裝了python一樣)
- 防止莫名的報錯?。▊€人體會最深,因為剛開始用python時明明都用的好好的,但是在同一個解釋器環(huán)境下安裝的模塊多了,就容易報一些莫名其妙的錯誤,而且代碼并沒有錯誤,很大原因就是模塊引用之間的沖突,例如我之前在用多線程時,經(jīng)常報錯 json 模塊沒有 loads 方法,后來才知道是環(huán)境問題)
基本使用方法
創(chuàng)建虛擬環(huán)境
linux環(huán)境:
python3 -m venv /path/to/new/virtual/environment
運行此命令將創(chuàng)建目標目錄(父目錄若不存在也將創(chuàng)建),并放置一個 pyvenv.cfg 文件在其中,文件中有一個 home 鍵,它的值指向運行此命令的 Python 安裝(目標目錄的常用名稱是 .venv)。
它還會創(chuàng)建一個 bin 子目錄(在 Windows 上是 Scripts),其中包含 Python 二進制文件的副本或符號鏈接(視創(chuàng)建環(huán)境時使用的平臺或參數(shù)而定)。
它還會創(chuàng)建一個(初始為空的) lib/pythonX.Y/site-packages 子目錄(在 Windows 上是 Lib\site-packages)。
如果指定了一個現(xiàn)有的目錄,這個目錄就將被重新使用。
win環(huán)境:
python -m venv \path\to\myenv
激活進入虛擬環(huán)境
- 進入到對應(yīng)項目目錄下的:\venv\Scripts
- 然后打開命令行輸入
activate
- 然后在命令行的盤符前面就可以看到多了 (venv) 字符,代表成功激活虛擬環(huán)境
虛擬環(huán)境是一個 Python 環(huán)境,安裝到其中的 Python 解釋器、庫和腳本與其他虛擬環(huán)境中的內(nèi)容是隔離的,且(默認)與“系統(tǒng)級” Python(操作系統(tǒng)的一部分)中安裝的庫是隔離的。
虛擬環(huán)境是一個目錄樹,其中包含 Python 可執(zhí)行文件和其他文件,其他文件指示了這是一個是虛擬環(huán)境。
常用安裝工具如 setuptools 和 pip 可以在虛擬環(huán)境中按預(yù)期工作。換句話說,當(dāng)虛擬環(huán)境被激活,它們就會將 Python 軟件包安裝到虛擬環(huán)境中,無需明確指示。
當(dāng)虛擬環(huán)境被激活(即虛擬環(huán)境的 Python 解釋器正在運行),屬性 sys.prefix 和 sys.exec_prefix 指向的是虛擬環(huán)境的基礎(chǔ)目錄,而 sys.base_prefix 和 sys.base_exec_prefix 指向非虛擬環(huán)境的 Python 安裝,即曾用于創(chuàng)建虛擬環(huán)境的那個 Python 安裝。如果虛擬環(huán)境沒有被激活,則 sys.prefix 與 sys.base_prefix 相同,且 sys.exec_prefix 與 sys.base_exec_prefix 相同(它們均指向非虛擬環(huán)境的 Python 安裝)。
當(dāng)虛擬環(huán)境被激活,所有 distutils 配置文件中更改安裝路徑的選項都會被忽略,以防止無意中將項目安裝在虛擬環(huán)境之外。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
selenium框架中driver.close()和driver.quit()關(guān)閉瀏覽器
這篇文章主要介紹了selenium框架中driver.close()和driver.quit()關(guān)閉瀏覽器,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12在Pytorch中計算卷積方法的區(qū)別詳解(conv2d的區(qū)別)
今天小編就為大家分享一篇在Pytorch中計算卷積方法的區(qū)別詳解(conv2d的區(qū)別),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01python如果快速判斷數(shù)字奇數(shù)偶數(shù)
這篇文章主要介紹了python如果快速判斷數(shù)字奇數(shù)偶數(shù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11Python中用post、get方式提交數(shù)據(jù)的方法示例
最近在學(xué)習(xí)使用Python,發(fā)現(xiàn)網(wǎng)上很少提到如何使用post,所以下面這篇文章主要給大家介紹了關(guān)于Python中用post、get方式提交數(shù)據(jù)的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-09-09Django用戶認證系統(tǒng) 組與權(quán)限解析
這篇文章主要介紹了Django用戶認證系統(tǒng) 組與權(quán)限解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08使用python中的in ,not in來檢查元素是不是在列表中的方法
今天小編就為大家分享一篇使用python中的in ,not in來檢查元素是不是在列表中的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07