python虛擬環境-virtual environment


python虛擬環境-virtual environment

一、總結

一句話總結:

python虛擬環境是一個隔離/獨立的python開發環境,和系統python環境可以完全隔離,互不相關,相當於多了一個python開發環境。

 

1、python 可用於virtual environment的具體模塊?

venv:venv模塊在python3.3以上的版本可以使用
virtualenv:virtualenv在python2.7+和python3.3+都可以使用

 

 

2、python virtual environment優缺點?

優點:每個虛擬環境之間,以及虛擬環境和系統環境之間是完全隔離的,不同虛擬環境中,你可以安裝不同版本的模塊,就仿佛你可以同時擁有N多個不同的python開發環境。
缺點:每次進入某個虛擬環境之前,都要使用source命令激活。每次使用完,都要使用deactivate命令退出。

 

 

 

二、python虛擬環境-virtual environment

轉自或參考:python虛擬環境—virtual environment
https://www.jianshu.com/p/2fdb53825d35

 

操作系統:ubuntu16.04

1.1 什么時候會用到python虛擬環境

問題1

舉個例子,tensorflow(tf)是一個十分流行的python機器學習庫,你現在手里有兩個tf項目,其中項目A需要使用python2.7 + f1.2,項目B需要使用python2.7 + tf1.6.這兩個項目你得同時進行,怎么辦?

愚蠢的辦法是需要運行項目A時,將python2.7中的tf1.6卸載掉,安裝tf1.2;需要運行項目B時,將python2.7中的tf1.2卸載掉,安裝tf1.6。如果是單個模塊還好,但是tf的不同版本又依賴於python中的其他已安裝模塊,而且tf1.2和tf1.6對依賴模塊有不同的版本要求,那么轉換一次得卸載安裝好幾個模塊,是不是很爆炸?

問題2

課題組里幾個同門共用一台服務器,每個人擁有一個系統賬戶,其中只有一個人擁有root權限,里面每個人都需要使用python跑程序,而且每個人對python版本以及python模塊的版本都有不同需求,很多人又沒有root權限,如何解決?

使用python的虛擬環境可以輕松解決上面的問題!

1.2 什么是python虛擬環境

python虛擬環境是一個隔離/獨立的python開發環境,和系統python環境可以完全隔離,互不相關,相當於多了一個python開發環境。而且你在python虛擬環境中的開發過程和使用系統python一模一樣,你可以在你創建的python虛擬環境中使用pip工具安裝任何你需要的模塊,該模塊和系統python環境完全不相關。虛擬環境的這個特點就能解決上面的問題了。

1.3 安裝虛擬環境

python有兩個模塊可以用於創建和管理python虛擬環境:

  • venv;
  • virtualenv;

其中,venv模塊在python3.3以上的版本可以使用,而virtualenv在python2.7+和python3.3+都可以使用。

默認的系統python中是沒有安裝以上兩個工具的,需要使用以下命令安裝:

#安裝venv
sudo apt install python3-venv
#安裝virtualenv
pip install virtualenv
或者
sudo -H pip install virtualenv

安裝好之后,就可以使用這兩個工具安裝python虛擬環境了。

1.3.1 使用virtualenv

我的系統python版本有python2.7和python3.5,虛擬環境的版本只能是系統中已有的python版本。使用virtualenv安裝虛擬環境的命令如下:

#安裝python2.7虛擬環境
virtualenv /home/yan/env 

什么參數都不指定的話,它會使用/usr/bin/python路徑下的python解釋器版本,即python2.7。因此會默認安裝python2.7虛擬環境,/home/yan/env表示虛擬環境的安裝路徑。

如果你要安裝的是python3.5的虛擬環境,可以這樣:

#安裝python3.5虛擬環境
virtualenv --python=python3.5 /home/yan/env3

一般情況下,上面兩條命令就夠了,這樣安裝得到的python虛擬環境和系統python環境是完全隔離的。

更多的命令選項可以在命令行中直接輸入virtualenv命令獲取。

1.3.2 使用venv

venv只有python3可以使用,因此只能創建python3的虛擬環境,創建命令如下:

python3 -m venv /home/yan/env3

其中,python3 -m venv是死命令,最后的安裝路徑自己指定。

注意:以上兩種安裝方式在安裝虛擬環境的同時也自動安裝了pip工具。

1.4 如何使用虛擬環境

安裝好虛擬環境之后,每次使用該虛擬環境前需要使用source命令激活它。假設前面我在/home/yan/env3/目錄下安裝了python3.5的虛擬環境,現在我使用以下命令激活它:

source /home/yan/env3/bin/activate

激活之后,在命令行提示符前面會有(env3)的提示,表示當前你處的python虛擬環境,比如我電腦的情況:

yan@yanubuntu:~$ python3 -m venv /home/yan/env3
yan@yanubuntu:~$ source /home/yan/env3/bin/activate
(env3) yan@yanubuntu:~$ 

現在你可以在激活環境中干任何事情,比如使用pip命令在你新的python虛擬環境中安裝模塊:

pip install tensorflow
pip install opencv-python
pip install matplotlib
...

或者執行python腳本。

使用完該虛擬環境之后,你需要在命令行輸入deactivate命令來退出該虛擬環境:

(env3) yan@yanubuntu:~$ deactivate
yan@yanubuntu:~$ 

之后就回到了正常的系統python環境中。

由於你創建該虛擬環境的目的是為了跑某個項目的程序,現在該項目做完了,不需要該虛擬環境了,你可以把該虛擬環境直接刪除,如何刪?

直接將創建虛擬環境時生成的文件夾刪掉,就這么簡單。比如我要把我剛才創建的env3虛擬環境刪除:

yan@yanubuntu:~$ rm -r /home/yan/env3
yan@yanubuntu:~$ 

在刪除虛擬環境前記得一定得先退出該虛擬環境。

1.5 總結

python虛擬環境的好處是:每個虛擬環境之間,以及虛擬環境和系統環境之間是完全隔離的,不同虛擬環境中,你可以安裝不同版本的模塊,就仿佛你可以同時擁有N多個不同的python開發環境。

唯一麻煩的一點是:每次進入某個虛擬環境之前,都要使用source命令激活。每次使用完,都要使用deactivate命令退出。

1.6 參考文獻

 

 

 


免責聲明!

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



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