Python 使用virtualenv 開發環境虛擬化配置

開發Python應用程序的時候,系統安裝的Python3只有一個版本:3.7。所有第三方的包都會被pip安裝到Python3的site-packages目錄下。

如果我們要同時開發多個應用程序,那這些應用程序都會共用一個Python,就是安裝在系統的Python 3。如果應用A需要cx_Oracle 5.3,而應用B需要cx_Oracle 7.2 怎麼辦?

這種情況下,每個應用可能需要各自擁有一套“獨立”的Python運行環境。virtualenv就是用來爲一個應用創建一套“隔離”的Python運行環境。

首先,我們用pip安裝virtualenv:

[felix@felix_mac]$ pip install virtualenv
然後,假定我們要開發一個新的項目,需要一套獨立的Python運行環境,可以這麼做:

第一步,創建目錄:

[felix@felix_mac]$ mkdir myproject
[felix@felix_mac]$ cd myproject/
[felix@felix_mac]$


第二步,創建一個獨立的Python運行環境,命名爲python27env:

[felix@felix_mac]$ virtualenv --no-site-packages python27env
Using base prefix '/usr/local/.../Python.framework/Versions/3.7'
New python executable in python27env/bin/python3.7
Also creating executable in python27env/bin/python
Installing setuptools, pip, wheel...done.


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

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

[felix@felix_mac]$ source python27env/bin/activate
(python27env)Mac:myproject michael$


注意到命令提示符變了,有個(python27env)前綴,表示當前環境是一個名爲python27env的Python環境。

另外:python版本往往是系統默認的2.x版本.(安裝不同版本)那麼如何創建一個python3.x的虛擬環境

注意:前提是必須已安裝python3環境
virtualenv -p /usr/bin/python3 py3env

其中,py3env是虛擬環境的名稱,可以根據自己的需求命名。
注意,前提是你已經安裝了python3.x版本
當我們想用python2.x版本的時候,直接
virtualenv venv
或者
virtualenv -p /usr/bin/python py2env


下面正常安裝各種第三方包,並運行python命令:

(python27env)Mac:myproject michael$ pip install cx_Oracle==5.3
...

或者
(python27env)Mac:myproject michael$ pip install -r  requirements.txt


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

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

#退出命令
(python27env)Mac:myproject michael$ deactivate 


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

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

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

------------------------------------------------------------
LINUX 下 python3 安裝(需要root權限):

Unix & Linux 平臺安裝 Python3:
以下爲在 Unix & Linux 平臺上安裝 Python 的簡單步驟:

打開WEB瀏覽器訪問 https://www.python.org/downloads/source/
選擇適用於 Unix/Linux 的源碼壓縮包。
下載及解壓壓縮包 Python-3.x.x.tgz,3.x.x 爲你下載的對應版本號。
如果你需要自定義一些選項修改 Modules/Setup
以 Python3.7.7 版本爲例:

# tar -zxvf Python-3.7.7.tgz
# cd Python-3.7.7
# ./configure
# make && make install
檢查 Python3 是否正常可用:

# python3 -V
Python 3.7.7

LINUX 下 python3 安裝(非root權限):

1. tar -zxvf Python-3.7.7.tgz
   cd Python-3.7.7

2. ./configure --prefix=/home/felix_pan/app/python3

3. make -j && make install

4. 如果已經安裝  setuptools 則跳過此步驟,有兩種方式進行安裝,建議使用方式一:pip
方式一:pip安裝 簡單方便,前提是pip已安裝
pip install setuptools
方式二:手動安裝
$ wget https://pypi.python.org/packages/0a/40/a740a4890d9cc8f725f67da158ab250d3926b874e0f7cb85bdc836e3d069/setuptools-24.0.0.tar.gz#md5=75e7269ab0425efe590acbc834575f13
$tar zxvf setuptools-24.0.0.tar.gz

5.檢查 Python3 是否正常可用:
# python3 -V
Python 3.7.7

6、給python添加PATH路徑

export PYTHON3_HOME=/home/felix_pan/app/python3
export PATH=$PYTHON3_HOME/bin:$PATH 

無root權限安裝openssl:

mkdir /local/ssl #創建安裝目錄
mkdir /local/ssl_download # 創建下載目錄
cd /local/ssl_download
wget www.openssl.org/source/openssl-1.0.2d.tar.gz # 下載壓縮包
tar xf openssl-1.0.2d.tar.gz # 解壓縮
cd openssl-1.0.2d
./config --prefix=/local/ssl # 設置安裝目錄
make
make install # 安裝

修改環境變量
vim ~/.bashrc
export PATH="/local/ssl/bin:$PATH"
export LIBRARY_PATH="/local/ssl/lib:$LIBRARY_PATH"
export LD_LIBRARY_PATH="/local/ssl/lib:$LD_LIBRARY_PATH"

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章