python安装虚拟环境没有activate_Python venv虚拟环境:Activate命令的作用
之前在處理其它需求時,發現只要用venv目錄下的python.exe來解釋py代碼就可以正常運行。本來以為完事了,突然想起來,這樣的話根本沒有運行Activate命令,沒有進入Python虛擬環境啊。于是稍微研究了一下這個問題。
[Activate]
看了下Activate源碼,其中最重要的動作是把venv虛擬環境的路徑臨時添加到系統Path路徑最前面,這樣venv的pip命令就能把模塊(庫)安裝到虛擬環境目錄里。Path配置的信息可以在PowerShell里,通過 $env:Path 命令查看,能夠清楚的看到運行Activate之后venv目錄添加到了Path配置的最前面。
PowerShell中,通過 $env:Path 指令查看Path信息
運行Activate之后虛擬目錄添加到了Path配置的最前面
[是否Activate進入虛擬環境對pip的影響]
寫一個py測試文件,引入os模塊(庫),然后執行 os.system("pip list")
Activate進入虛擬環境,執行,列出venv中已經添加的模塊;用系統Python執行,列出系統Python中已經添加的模塊。
不Activate虛擬環境,直接用venv目錄里的python.exe執行,列出系統Python中添加的模塊
也就是說不Activate進入虛擬環境,會調用系統Python的pip命令
[是否Activate虛擬環境對Python.exe執行py代碼有什么區別]
再編寫py文件,引入sys模塊(庫),打印Python相關的環境變量print(sys.path)
系統Python執行
首先用系統Python執行:
路徑中包括 [當前源碼目錄、系統Python的dll和lib目錄,以及系統Python的site-packages目錄]
Activate進入虛擬環境并執行
Activate進入虛擬環境并執行:
結果包括 [當前源碼目錄、系統Python的dll和lib目錄,venv目錄、venv的site-packages目錄]
直接用venv目錄里的python.exe執行
不Activate虛擬環境,直接用venv目錄里的python.exe執行:
結果包括 [當前源碼目錄、系統Python的dll和lib目錄,venv目錄、venv的site-packages目錄]
是否運行Activate都不影響最終結果
[結論]
無論是否Activate,虛擬環境的python.exe在運行時,環境變量自動包含venv的site-packages目錄。
所以用venv的python.exe執行py代碼,跟是否Activate虛擬環境沒有關系。
Activate影響的是pip安裝模塊(庫)的時候。
同時也清楚了venv里的Python還是繼承系統Python的DLL和Lib,所以直接把venv拷貝給其它機器的話,至少需要對方機器里已經安裝了同版本的Python。
相關視頻:
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的python安装虚拟环境没有activate_Python venv虚拟环境:Activate命令的作用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 召陵区和圆名居公租房住户登记名单?
- 下一篇: python dump函数_python