1. 程式人生 > >搭建Python獨立環境:virtualenv的應用

搭建Python獨立環境:virtualenv的應用

virtualenv是什麼?它是為了方便Python獨立開發應運而生的一款整合管理工具,通俗的說就是在和系統本身的環境不衝突的前提下獨立出一塊隔離的空間,把它留給新專案的依賴環境——就是為了解決不同版本、不同型別的Python依賴衝突而誕生的!

virtualenv簡介和安裝

virtualenv是Github上的一個專案,按照它的原話就是『Python虛擬環境的構建者』,這是它的專案地址:Virtual Python Environment builder

這裡簡單介紹下它的工作原理:virtualenv把執行Python程式必須的基本環境,包括二進位制Python自身、Python標準庫、pip安裝器,以及至關重要的site-packages目錄,全部拷貝一份到一個完全隔離的目錄下,這個目錄就是你的獨立開環境

在專案首頁最下面有安裝教程的超連結:Installation,你可以簡單敲pip命令進行安裝,這是最簡便的方法

pip install virtualenv

另外還用第二種方法:把專案整個當下來,然後手動安裝

# Use virtualenv globally
$ curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-X.X.tar.gz
$ tar xvfz virtualenv-X.X.tar.gz
$ cd virtualenv-X.X
$ [sudo] python setup.py install

# Use virtualenv locally
$ curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-X.X.tar.gz $ tar xvfz virtualenv-X.X.tar.gz $ cd virtualenv-X.X $ python virtualenv.py myVE

事實上你需要全域性安裝的Python套件只有兩個,即pip和virtualenv,如果 把virtualenv包括的pip算進去,那其實只要安裝一個virtualenv已足矣

使用virtualenv建立獨立專案

在安裝好virtualenv後,就可以建立隔離環境的Python專案了,下面以demo這個專案為例

1. 建立專案根目錄,命名為demo並進入該目錄

➜  ~ mkdir demo
➜  ~ cd demo
➜  demo 

2. 使用virtualenv命令,建議加上–no-site-packages選項

➜  demo virtualenv --no-site-packages venv
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.6'
New python executable in /Users/macbookpro/demo/venv/bin/python3.6
Also creating executable in /Users/macbookpro/demo/venv/bin/python
Installing setuptools, pip, wheel...done.

3. 如果想要手動指定Python版本,請使用–python=$PYTHON_VERSION選項

➜  demo virtualenv --python=python2.7 --no-site-packages venv1
Running virtualenv with interpreter /usr/local/bin/python2.7
New python executable in /Users/macbookpro/demo/venv1/bin/python2.7
Also creating executable in /Users/macbookpro/demo/venv1/bin/python
Installing setuptools, pip, wheel...done.

4. 你甚至可以指定系統沒有安裝的Python版本,比如我這裡的Python3.7,但是絕對不要想當然的填寫Pyhton版本號否則會報錯“doesn’t exist”

➜  demo virtualenv --python=python3.7 --no-site-packages venv2
Running virtualenv with interpreter /usr/local/bin/python3.7
Using base prefix '/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7'
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/virtualenv.py:1041: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
  import imp
New python executable in /Users/macbookpro/demo/venv2/bin/python3.7
Also creating executable in /Users/macbookpro/demo/venv2/bin/python
Installing setuptools, pip, wheel...done.
➜  demo virtualenv --python=python4.0 --no-site-packages venv3
The path python4.0 (from --python=python4.0) does not exist

5. 在新建的venv目錄下,重點關注bin目錄,它包括了pip管理器和python對應版本的直譯器Pythonx.x.

➜  venv ls
bin                include            lib                pip-selfcheck.json
➜  venv cd bin
➜  bin ls
activate         easy_install     pip3.6           python3.6
activate.csh     easy_install-3.6 python           wheel
activate.fish    pip              python-config
activate_this.py pip3             python3
➜  demo venv/bin/pip install requests
Collecting requests
  Downloading https://files.pythonhosted.org/packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl (91kB)
    100% |████████████████████████████████| 92kB 138kB/s 
Collecting idna<2.8,>=2.5 (from requests)
  Downloading https://files.pythonhosted.org/packages/4b/2a/0276479a4b3caeb8a8c1af2f8e4355746a97fab05a372e4a2c6a6b876165/idna-2.7-py2.py3-none-any.whl (58kB)
    100% |████████████████████████████████| 61kB 52kB/s 
Collecting urllib3<1.24,>=1.21.1 (from requests)
  Downloading https://files.pythonhosted.org/packages/bd/c9/6fdd990019071a4a32a5e7cb78a1d92c53851ef4f56f62a3486e6a7d8ffb/urllib3-1.23-py2.py3-none-any.whl (133kB)
    100% |████████████████████████████████| 143kB 29kB/s 
Collecting chardet<3.1.0,>=3.0.2 (from requests)
  Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
    100% |████████████████████████████████| 143kB 53kB/s 
Collecting certifi>=2017.4.17 (from requests)
  Downloading https://files.pythonhosted.org/packages/7c/e6/92ad559b7192d846975fc916b65f667c7b8c3a32bea7372340bfe9a15fa5/certifi-2018.4.16-py2.py3-none-any.whl (150kB)
    100% |████████████████████████████████| 153kB 41kB/s 
Installing collected packages: idna, urllib3, chardet, certifi, requests
Successfully installed certifi-2018.4.16 chardet-3.0.4 idna-2.7 requests-2.19.1 urllib3-1.23

6. 用virtual內建pip安裝的包被放在lib目錄下

➜  demo venv/bin/pip show requests
Name: requests
Version: 2.19.1
Summary: Python HTTP for Humans.
Home-page: http://python-requests.org
Author: Kenneth Reitz
Author-email: [email protected].org
License: Apache 2.0
Location: /Users/macbookpro/demo/venv/lib/python3.6/site-packages
Requires: idna, certifi, chardet, urllib3
Required-by:

7. 為了減少打字,可啟用activate檔案,這樣原來的venv/bin/pip就要寫pip,代替了系統原來的pip命令,不用時啟用deactivate命令即可

➜  demo source venv/bin/activate
(venv) ➜  demo pip list
Package    Version  
---------- ---------
certifi    2018.4.16
chardet    3.0.4    
idna       2.7      
pip        10.0.1   
requests   2.19.1   
setuptools 40.0.0   
urllib3    1.23     
wheel      0.31.1   
(venv) ➜  demo pip uninstall requests
Uninstalling requests-2.19.1:
  Would remove:
    /Users/macbookpro/demo/venv/lib/python3.6/site-packages/requests-2.19.1.dist-info/*
    /Users/macbookpro/demo/venv/lib/python3.6/site-packages/requests/*
Proceed (y/n)? y
  Successfully uninstalled requests-2.19.1
(venv) ➜  demo pip list
Package    Version  
---------- ---------
certifi    2018.4.16
chardet    3.0.4    
idna       2.7      
pip        10.0.1   
setuptools 40.0.0   
urllib3    1.23     
wheel      0.31.1   
(venv) ➜  demo 
(venv) ➜  demo deactivate 
➜  demo 

8. pip和virtualenv合作使用起來很爽,pip使用-r引數指定requirement檔案

pip install -r requirements.txt

ok,這樣基本的隔離Python開發環境就被創建出來啦~關於virtualenv暫就講到這裡,還有些比較方便的功能有待大家共同探索^ ^

備註1:Python2.x和3.x的site-packages目錄
Python2.7:/Library/Python/2.7/site-packages
Python3.6:/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages

備註2:使用問題
事實上在工程中已經不用virtuakenv了,我們有更好的替代品virtualenvwrapper,它封裝了virtualenv的所有功能並有利於集中管理,不過不必擔心二者的基本思想是一樣的,變化的無非是一些命令罷了

相關推薦

搭建Python獨立環境virtualenv應用

virtualenv是什麼?它是為了方便Python獨立開發應運而生的一款整合管理工具,通俗的說就是在和系統本身的環境不衝突的前提下獨立出一塊隔離的空間,把它留給新專案的依賴環境——就是為了解決不

Python 虛擬環境Virtualenv

退出 套件 apt nbsp ron ubun pip 也會 packages virtualenv是用於創建獨立的Python環境的模塊,並且多個Python相互獨立,互不影響,它能夠:1. 在沒有權限的情況下安裝新套件2. 不同應用可以使用不同的套件版本3. 套件升級不

Python(一)搭建Python開發環境(Windows)

學習Python的第一步當然是要配置一下開發環境了,這裡記錄一下本人在windows 10(64位)下配置Python開發環境的過程,供跟我一樣的新手參考一下。一、下載Python安裝包目前最新的版本為Python 3.6.2,下載地址:https://www.python.

使用virtualenv搭建Python虛擬環境

virtualenv用來部署獨立Python的一個工具,用來解決版本依賴,及不相容的專案。virtualenv介紹virtualenv部署時擁有自己的安裝目錄,不與其它任何環境共享一個庫,能夠管理Python的版本和庫。如同時開發多個應用時,這些應用需要共用一個Python,

使用pyenv和virtualenv搭建python虛擬環境實踐總結

介紹 出於種種原因,很多人的電腦上會同時安裝很多個版本的 Python,比如會有 2.7 + 3.4。一般在 windows 下我們都可以通過使用絕對路徑的方式來繞過系統對 PATH 環境變數的查詢;在 Linux 下除了這種方式外,還可以在指令碼檔案開頭顯示

Python開發入門Windows下搭建python開發環境

python開發入門 Python是一種高級計算機程序設計語言。舉個例子C語言要寫1000行代碼,Java只需要寫100行,而Python可能只要20行。 Python基本概念 Python(英語發音:/?pa?θ?n/), 是一種面向對象、解釋型計算機程序設計語言,由Guido van R

Python虛擬環境virtualenv

環境 2.7 需要 python環境 rtu ins 版本 python 關閉 pip install virtualenv 安裝虛擬環境 virtualenv myproject 創建虛擬環境 source ./bin/activate 激活 pip install 安

在Xcode7中搭建Python開發環境

xcode7 python如果你是從IOS開發轉PYTHON,鐘情於Xcode :)說實話,不好用,也許我用的少?======================================在Xcode7中搭建Python開發環境 一、開發環境準備 1、安裝Xcode 2、找到Mac OS X上安裝Pytho

重拾Python(1):使用Anaconda搭建Python開發環境(Windows7)

pip -m class 路徑 下載地址 命令 http body linux 1.為什麽選擇Anaconda? Anaconda解決Python使用痛點 Python好用但是令人頭疼的就是包管理與Python不同版本的問題,特別是Windows環境下。 2.什麽是Anac

Python 虛擬環境VirtualEnv

pac python ont info 名稱 mage 單獨 創建 選擇 Mac上安裝Python3虛擬環境(VirtualEnv) 前言 了解安裝步驟之前,我們先聊聊幾個問題:1.為什麽要安裝虛擬機?單獨的虛擬環境可以讓每一個Python項目單獨使用一個環境,而不會影響P

Sublime Text 3搭建Python開發環境

erp 文件夾 nbsp col sel ext bsp word 開發效率 Sublime Text 3(簡稱:ST3)是一個非常輕便的IDE,這篇博文主要介紹如何在ST3上搭建Python的開發環境(Windows 10)。 1. 下載並安裝完ST3之後,第一件要做的事

Windows系統下Eclipse上搭建Python開發環境

acl ora .com sdn down win ava ecp http 參考網站: https://blog.csdn.net/zhangphil/article/details/78962159 1、先安裝JDK ,參考網站:https://www.cnblog

IDEA搭建scala開發環境開發spark應用程序

編寫 運行程序 通過 https apach import input inf 搭建 一、idea社區版安裝scala插件 因為idea默認不支持scala開發環境,所以當需要使用idea搭建scala開發環境時,首先需要安裝scala插件,具體安裝辦法如下。 1、

Eclipse+PyDev配置搭建Python開發環境

Eclipse+PyDev配置搭建Python開發環境     這個就像我們學習C用VC,學習Java用Eclipse一樣,我們需要一個Python編寫的軟體,於是官網下載了https://ww請把中文去掉w.python.org/downloads/release/

vscode搭建 搭建python Django環境

1、檢視是否有PIP $ pip Usage: pip <command> [options] Commands: install Install packages. download

python 虛擬環境操作 virtualenv +virtualenvwrapper

Window 下建立python的虛擬環境 下載工具   pip install virtualenv 建立虛擬環境目錄   # 注意此命令建立的虛擬環境目錄是在當前目錄下   virtualenv testenv 使用虛擬環境   cd testenv/Scripts   activate

Mac 如何搭建python虛擬環境

首先去python官網 下載python3的 安裝包安裝: https://www.python.org/ftp/python/3.6.5/python-3.6.5-macosx10.9.pkg 安裝python3,升級pip3 sudo pip3 install --upgrade pip 安裝 vir

用Anaconda搭建python學習環境

既然是程式語言,就得有個程式設計的環境。這裡我推薦Anaconda。 Anaconda其實並不單單是支援python,還支援其他的。至於Anaconda、conda以及Python的關係,三兩句話說不清楚,網上各式各樣的介紹也有不少,我認為寫的比較客觀和詳細而且容易理解的,

Mac上搭建Python整合環境

Jenkins安裝 第一種方式下載安裝包 官網 https://jenkins.io/download/ 下載安裝包 第二種通過homebrew安裝,前提需要安裝jdk(推薦) brew install jenkins 安裝完成後終端繼續輸入 jenkins 期

python虛擬環境 Anaconda & virtualenv

一入python深似海,真是遇到一山移一山啊! python虛擬環境 Anaconda & virtualenv 由於Python有2.x和3.x兩個大的版本,而且每一個工程建立所用的各種包的版本也不盡相同 pyenv 管理 Python 的版本。 v