Venv使用教程


Virtual Environments and Packages

1.介紹

python常常使用非標准庫中的模塊。在開發Python應用程序的時候,系統安裝的Python3只有一個版本:python3.7。所有第三方的包都會被pip安裝到Python3的site-packages目錄下。

當一個工具需要適應一個特殊版本的三方庫,另一個腳本則需要另外的版本。

解決方法是創建Python虛擬目錄環境,不同的應用可以使用不同的Python虛擬環境,不同應用程序的虛擬環境互不沖突,互不干擾。

2.創建虛擬環境

管理虛擬機環境的工具是叫做venv,電腦中新版本的Python都包含ven工具。

  1. 創建虛擬環境,你需要選擇你放置的目錄。然后運行

    python3 -m venv tutorial-env
    

    它將創建tutorial-env目錄,包含Python解釋器和一些模塊文件以及各種支持文件。一個常見目錄是.env

  2. 一旦創建后,需要激活它

    source tutorial-env/bin/activate   # MACOS
    tutorial-env\Scripts\activate.bat  #WINDOWS
    

激活虛擬環境提示你的使用的虛擬環境,並修改環境以便於你運行特定版本的Python。

  1. 使用pip管理你的模塊。

    可以使用pip更新、移出模塊。https://docs.python.org/3/installing/index.html#basic-usage

 python -m pip install requests==2.6.0    安裝特定版本
python -m pip install --upgrade requests  升級reqeusts模塊
pip show requests
pip freeze
pip uninstall

3. 總結

使用廖雪峰python3.4教程。實測發現macOS的python3.7不適用。

pip3 install virtualenv
Mac:~ michael$ mkdir myproject
Mac:~ michael$ cd myproject/
Mac:myproject michael$
Mac:myproject michael$ virtualenv --no-site-packages venv

命令virtualenv就可以創建一個獨立的Python運行環境,我們還加上了參數--no-site-packages,這樣,已經安裝到系統Python環境中的所有第三方包都不會復制過來,這樣,我們就得到了一個不帶任何第三方包的“干凈”的Python運行環境。

新建的Python環境被放到當前目錄下的venv目錄。有了venv這個Python環境,可以用source進入該環境:

Mac:myproject michael$ source venv/bin/activate
(venv)Mac:myproject michael$

venv環境下,用pip安裝的包都被安裝到venv這個環境下,系統Python環境不受任何影響。也就是說,venv環境是專門針對myproject這個應用創建的。

退出當前的venv環境,使用deactivate命令:

(venv)Mac:myproject michael$ deactivate 
Mac:myproject michael$ 

此時就回到了正常的環境,現在pippython均是在系統Python環境下執行。

完全可以針對每個應用創建獨立的Python運行環境,這樣就可以對每個應用的Python環境進行隔離。

virtualenv是如何創建“獨立”的Python運行環境的呢?原理很簡單,就是把系統Python復制一份到virtualenv的環境,用命令source venv/bin/activate進入一個virtualenv環境時,virtualenv會修改相關環境變量,讓命令pythonpip均指向當前的virtualenv環境。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM