python中如何使用虛擬環境
在進行python的開發過程中一直倡導使用虛擬環境來進行專案隔離,這樣不會因為python的包不同而導致各種問題,但是以往為了圖省事簡單,安裝包就一直使用pip install 進行全域性安裝,這樣做其實很不好,最近也開始嘗試使用虛擬環境來對專案進行隔離開發。
在python中一般情況下有兩套方案,一種是使用virtualenv/venv 方式,還有一種是使用pipenv,但是看到網上對於pipenv這個專案有些非議,就目前來說專案的issue和pr很多,但是開發者似乎不太想要對其進行維護,所以還是先嚐試比較成熟穩定的virtualenv/venv方式吧,至於pipenv 以後再進行嘗試。
我所考慮的幾個問題
- 如何建立一個虛擬隔離環境
- 如何在虛擬環境中安裝包
- 如何使用國內的映象源加速
- 如何遷移專案到別的機器上
現在主要在python3中開發,所以就直接使用venv的方式吧,virtualenv和venv方式差不多,如果你是在python2中那麼就使用virtualenv吧。
如何建立一個虛擬隔離環境
建立目錄,並使用命令建立虛擬環境
mkdir venvtest cd venvtest python3 -m venv venttest
我是在windows環境下,執行完上面的命令以後會在venvtest目錄下venvtest目錄,這個目錄下有python3環境的基礎標準庫,並不包含你在全域性環境中安裝的第三方包。
呼叫虛擬環境的\Scripts\activate
命令就可以啟用虛擬環境,啟用虛擬環境以後,命令列提示符前會顯示當前虛擬環境的名字:(venttest) E:\venvtest>
安裝第三方庫
和全域性安裝一樣,使用pip install 命令,只不過這次是安裝到了虛擬環境,如執行pip install requests
命令,執行之後再檢視venvtest\venttest\Lib\site-packages
中就會有requests庫了,但是前提一定要使用activate啟用當前的虛擬環境,要不就安裝到了全域性的python site-packages目錄裡了。
如何使用國內的映象源加速
在虛擬機器環境中使用pip 讀取的是全域性的映象回事配置,就是要建立一個環境變數HOME
,然後在HOME環境變數的目錄下建立pip目錄,再建立一個pip.ini,寫入
[global] index-url = https://mirrors.aliyun.com/pypi/simple
我這裡使用的是阿里雲的映象加速。
如何遷移專案到別的機器上
我這裡簡單使用Flask建立一個hello world的專案
from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return '歡迎來到我的世界'
在啟用虛擬環境的情況下使用flask run
命令來執行服務,此時因為flask安裝在虛擬環境中,即使全域性python環境中沒有flask也可以執行,但一定要在啟用虛擬環境的狀態。
如何遷移專案
換一個電腦開發或者在多人開發的情況下,需要怎麼遷移專案呢?
簡單的方式是直接將原虛擬環境直接打包到新的目錄,然後修改一個相應的目錄配置。
主要是Script\activate.bat
將裡面的
set "VIRTUAL_ENV=E:\vtest\venttest"
修改為新的路徑。
還有一種方式是在原虛擬環境下備份出第三方庫列表,然後在新環境中重新安裝。
備份列表命令使用pip freeze > requirements.txt
將該虛擬環境安裝的第三方包備份到requirements.txt,在新的環境使用pip install -r requirements.txt
進行安裝,使用pip freeze 命令也會同時將第三方庫的版本資訊備份,這樣也保證了遷移以後的前後版本一致。
新電腦上也要安裝相同使用的python主環境,如你的虛擬環境是pyhon3,新環境只有python2,那也是不行的。
但是之前做專案的時候對第三方庫原始碼進行了修改,這裡也需要同時修改一下。
pycharm專案配置虛擬環境
pycharm 在建立專案的時候可以直接使用venv來建立
在New environment using 的下拉選項中選擇 Virualenv,在Base interpreter 中使用python 3.5 ,這裡列出了系統中安裝的python版本。如果沒有列出的話也可以點選後面的… 來手工選一下。
以上就是python中如何使用虛擬環境的詳細內容,更多關於python 虛擬環境的資料請關注我們其它相關文章!