日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Python 虚拟环境 virtualenv

發布時間:2023/11/28 生活经验 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 虚拟环境 virtualenv 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

virtualenv

  Python 今天我們就不聊了。接下來咱們說說virtualenv,英文比較好的同學,可能已經猜到了一半,virtual,即:虛擬的。那env是什么鬼?environment嗎?所以翻譯成中文就是”虛擬環境“。
?? ?到底什么是虛擬環境呢?顧名思義,它是一個虛擬出來的環境。通俗的來講,可以借助虛擬機,docker來理解虛擬環境,就是把一部分內容獨立出來,我們把這部分獨立出來的東西稱作“容器”,在這個容器中,我們可以只安裝我們需要的依賴包,而且各個容器之間互相隔離,互不影響。我們要學習Django,我們通過這個環境搞一個Django的虛擬環境就好了。
【前提概要】
?? ?Django也是一個非常流行的web框架。由于Django的迭代更新非常快,也比較頻繁,所以有一些過時的東西需要丟棄掉,一些新的東西需要加進來,從而導致不同的版本之間不兼容。比如Django1.3、Django1.4、Django1.8之間就有很大的差異性。
?? ?或者是說,以Python的版本舉例,現在工作中使用的Python版本與Python2.x和Python3.x兩種。
【故事背景】
  假設要進行Python web開發,使用的是Django。手上還有兩個老項目A和B需要維護,而新項目C也正在開發中。這里項目A使用的是django1.3,項目B使用的是django1.4,而新項目C使用的是Django1.8。那么問題來了,如何同時在本地進行ABC這三個項目的開發和維護?
正常的模式可能是這樣:現在在A項目上有一個BUG需要修復,于是,先執行下面的命令,刪除掉原來的版本:

1

pip uninstall django

然后再執行下面的命令安裝django1.3

1

pip install django==1.3

數分鐘后,bug修復完畢,好,現在進行新項目C的開發了,然后又要重復上面的故事。
  好了,這還是最理想的情況。最不理想的情況就是基于django的第三方依賴也是跟Django版本相關的,于是除了install和uninstall Django之外,還要uninstall和install其依賴,Orz,這特么的就尷尬了...

VirtualEnv能做什么呢?

  VirtualEnv可以搭建虛擬且獨立的python運行環境, 使得單個項目的運行環境與其它項目獨立起來。同時也可以用于在一臺機器上創建多個獨立的python運行環境,VirtualEnvWrapper為前者提供了一些便利的命令行上的封裝。
  Virtualenv是一個非常好的virtual python environment builder,他最大的好處是,可以讓每一個python項目單獨使用一個環境,而不會影響python系統環境,也不會影響其他項目的環境。
  Virtualenv可用于創建獨立的Python環境,在這些環境里面可以選擇不同的Python版本或者不同的Packages,并且可以在沒有root權限的情況下在環境里安裝新套件,互相不會產生任何的影響。

言歸正傳

安裝,virtualenv本質上是個python包, 使用pip安裝:

1

pip install virtualenv

在工作目錄下創建虛擬環境(默認在當前目錄):注意需要自定義虛擬環境的名字!

1

2

3

~$virtualenv TestEnv

New python executable?in?~/TestEnv/bin/python

Installing setuptools, pip, wheel...done.

默認情況下, 虛擬環境中不包括系統的site-packages,?若要使用請添加參數:

1

語法:virtualenv?--system-site-packages TestEnv

使用virtualenv默認python版本創建虛擬環境

1

語法:virtualenv?--no-site-packages ubuntu_env

就可以在當前目錄創建一個env目錄(虛擬環境名稱,這個文件夾就是保存 Python 虛擬環境),你會注意到,virtualenv會把python,setuptools和pip給你安裝上。

自定義python版本創建虛擬環境
  1. 安裝需要版本的python
  2. 指定virtualenv中的python版本
?? ?  virtualenv --no-site-packages --python=2.7 env

Note:
  1. 創建virtualenv虛擬環境之前,系統中必須要安裝有對應版本的python,并且卸載之后當前虛擬環境就無效了。系統中可以同時存在python2和python3,通過環境變量中的系統變量path(不是用戶變量)控制cmd或者系統中使用哪個版本的python,哪個版本的路徑在前面就優先使用哪個版本。
  2. –no-site-packages表示不包括系統全局的Python安裝包,這樣會更令環境更干凈
  3. –python=python2.7指定Python的版本未系統已經安裝了的Python2.7
  4. env是建立的虛擬環境名稱
  5. 沒有安裝python2.7或者使用命令virtualenv --no-site-packages --python=python2.7 env會出現The executable python does notexist 錯誤

注意: 

  安裝的庫的位置在虛擬環境的 env/Lib/site-packages/目錄里,而不是在系統的python的Lib/site-packages目錄里,這樣你就知道為什么虛擬環境是分開的了吧。
  Note :virtualenv 創建的虛擬環境與主機的 Python 環境完全無關,你主機配置的庫不能在 virtualenv 中直接使用。你需要在虛擬環境中利用 pip install 再次安裝配置后才能使用。

關于創建一個虛擬環境,你也可以這樣做!

1

2

3

4

5

6

7

8

9

10

11

12

13

1、為一個工程創建一個虛擬環境:

?

$ cd my_project_dir

$ virtualenv venv  #venv為虛擬環境目錄名,目錄名自定義

?

  virtualenv venv 將會在當前的目錄中創建一個文件夾,包含了Python可執行文件,以及 pip 庫的一份拷貝,這樣就能安裝其他包了。

???虛擬環境的名字(此例中是 venv )可以是任意的;若省略名字將會把文件均放在當前目錄。

?

  在任何你運行命令的目錄中,這會創建Python的拷貝,并將之放在叫做 venv 的文件中。

?

2、你可以選擇使用一個Python解釋器:

$ virtualenv?-p?/usr/bin/python2.7?venv    # -p參數指定Python解釋器程序路徑

這將會使用?/usr/bin/python2.7?中的Python解釋器。

虛擬環境激活,若想使用就需要激活創建的虛擬環境!
進入虛擬環境目錄 執行source ./bin/activate激活虛擬環境:

1

2

3

4

# 相對路徑方式:<br>~/TestEnv$ source bin/activate

(TestEnv) ~/TestEnv$ python?-V

Python?2.7.11+<br><br># 絕對路徑方式

$ source venv/bin/activate # 絕對路徑

?從現在起,任何你使用pip安裝的包將會放在 venv 文件夾中,與全局安裝的Python隔絕開。像平常一樣安裝包,比如:

1

$ pip install requests

使用requirements.txt安裝版本包(requirements.txt文件下保存的都是各個依賴包的版本信息)

1

pip install?-r requirements.txt

  進入環境env1,執行pip freeze > requirements.txt將包依賴信息保存在requirements.txt文件中。
  最好手動調整一下順序,比如numpy和scipy要在matplotlib前面安裝;另外如果想安裝最新版本的,再將后面的版本號==1.9.1什么的刪除。
  然后進入目的虛擬環境env2,執行pip install -r requirements.txt,pip就會自動從網上下載并安裝所有包。
  虛擬環境env2如果是env1的拷貝,最好先pip uninstall -ry requirements.txt,再pip install -r requirements.txt

如果你在虛擬環境中暫時完成了工作,則可以停用它:

退出虛擬環境:

# 在環境下,相對退出<br>(TestEnv) ~/TestEnv$ deactivate~/TestEnv$<br><br>#走絕對路徑<br>$ .venv/bin/deactivate


要刪除一個虛擬環境,只需刪除它的文件夾。(執行 rm -rf venv )。這將會回到系統默認的Python解釋器,包括已安裝的庫也會回到默認的。

  這里virtualenv 有些不便,因為virtual的啟動、停止腳本都在特定文件夾,可能一段時間后,你可能會有很多個虛擬環境散落在系統各處,你可能忘記它們的名字或者位置。

virtualenvwrapper 

  鑒于virtualenv不便于對虛擬環境集中管理,所以推薦直接使用virtualenvwrapper。 virtualenvwrapper提供了一系列命令使得和虛擬環境工作變得便利。它把你所有的虛擬環境都放在一個地方。
1、安裝virtualenvwrapper(確保virtualenv已安裝)

pip install virtualenvwrapperpip install virtualenvwrapper-win  #Windows使用該命令

2、安裝完成后,在~/.bashrc寫入以下內容

export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/python3/bin/virtualenvwrapper.sh
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source ~/.bashrc    #讀入配置文件,立即生效

第一行:virtualenvwrapper存放虛擬環境目錄?

第二行:virtrualenvwrapper會安裝到python的bin目錄下,所以該路徑是python安裝目錄下bin/virtualenvwrapper.sh

?virtualenvwrapper基本使用

1.創建虛擬環境 mkvirtualenv

mkvirtualenv venv

這樣會在WORKON_HOME變量指定的目錄下新建名為venv的虛擬環境。
若想指定python版本,可通過"--python"指定python解釋

mkvirtualenv?--python=/usr/local/python3/bin/python venv

2. 基本命令  
  查看當前的虛擬環境目錄

[root@localhost ~]# workonpy2py3

  切換到虛擬環境

[root@localhost ~]# workon py3(py3) [root@localhost ~]#

  退出虛擬環境

(py3) [root@localhost ~]# deactivate[root@localhost ~]#

  刪除虛擬環境

rmvirtualenv venv

?

使用pycharm自動建立虛擬環境

也可以使用 pycharm 自帶功能建立虛擬環境

之后,將 requirements.txt 文件放到虛擬目錄 venv 下,pycharm自動識別,點擊『Install requirements』安裝相應的 package。

或者使用:

(venv) $ pip freeze >requirements.txt    # 生成
(venv) $ pip install -r requirements.txt    # 安裝

總結

以上是生活随笔為你收集整理的Python 虚拟环境 virtualenv的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。