1. 程式人生 > >Linux下安裝virtualenv和virtualvwrapper

Linux下安裝virtualenv和virtualvwrapper

安裝virtualenv

  在使用python開發的過程中, 工程一多, 難免會碰到不同的工程依賴不同版本的庫的問題, 或者是在開發過程中不想讓物理環境裡充斥各種各樣的庫, 引發未來的依賴關係.

  此時我們需要對於不同的工程使用不同的虛擬環境來保持開發環境以及宿主環境的清潔.

  所以我們需要使用virtualenv, 一個可以幫助我們管理不同python環境的絕好工具.

  virtualenv可以在系統中建立多個不同並且互相不干擾的虛擬環境.

1. 在Linux下安裝, 配置virtualenv

#指定清華源下載pip的包
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
#升級pip工具 pip3 install --upgrade pip
1.安裝virtualenv
pip3 install virtualenv 


2.建立目錄
mkdir Myproject
cd Myproject
3.建立獨立執行環境-命名
virtualenv --no-site-packages --python=python3  venv#得到獨立第三方包的環境,並且指定直譯器是python3
    引數 :
            --no-size-packages    # 建立一個乾淨, 隔離宿主及環境的虛擬環境
            --python=python3    #
指定你的虛擬環境要以哪個直譯器為base環境. 4.進入虛擬環境 source venv/bin/activate#此時進入虛擬環境(venv)Myproject 引數 : venv/bin/activate # 指的是安裝虛擬環境下的bin目錄內的activate 5.安裝第三方包 (venv)Myproject: pip3 install django==1.9.8 #此時pip的包都會安裝到venv環境下,venv是針對Myproject建立的 6.退出venv環境 deactivate命令 7. virtualenv是如何建立“獨立”的Python執行環境的呢?原理很簡單,就是把系統Python複製一份到virtualenv的環境,用命令source venv
/bin/activate進入一個virtualenv環境時,virtualenv會修改相關環境變數,讓命令python和pip均指向當前的virtualenv環境。
# 檢查環境變數PATH, 檢視是否正確激活了虛擬環境
(venv1) [[email protected]~ 12:03:48]#echo $PATH
/opt/all_env/venv1/bin:/opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:

2. 檢查你當前的python3 和pip3 來自於哪裡

# which python3 

(venv1) [[email protected]~ 12:04:12]#which python3
/opt/all_env/venv1/bin/python3

# which pip3
[[email protected] ~]# which pip3

  /home/venv1/bin/pip3

3. 使用venv1虛擬環境, 安裝一個django1.11.11

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple django==1.11.11

4. 建立虛擬環境

# 語法
source 虛擬環境所在的目錄下的bin目錄下的activate
source venv1/bin/activate

5. 退出虛擬環境

deavtivate

 


 

伺服器環境確保本地和伺服器開發環境一直性配置

假設我們在本地開發環境, 準備好了專案+依賴包環境
現在需要將專案上傳至伺服器, 上線釋出
name就要保證伺服器的python環境一直性
# 解決環境
1. 通過命令保證環境的一致性, 到處當前python環境的包
pip3 freeze > requirements.txt    #這將會建立一個 requirements.txt 檔案,其中包含了當前環境中所有包及 各自的版本的簡單列表。可以使用 “pip list”在不產生requirements檔案的情況下, 檢視已安裝包的列表。
2. 將此requirements.py檔案上傳至伺服器上
      上傳辦法 :
            1. yum install lrzsz
                lrzsz軟體包提供了兩個命令
                    ①. sz(傳送,下載) 從linux往windows下載
                         sz 想傳輸的檔名字
                    ②. rz(接收, 上傳)從windows往linux上傳
                         rz 直接輸入命令即可
            2. 通過xftp(大多數公司使用)

 


 

虛擬環境之virtualenvwrapper

virtualenv 的最大一個缺點是 :
    每次開啟虛擬環境之前都要去虛擬環境所在的目錄下的bin目錄下source下activate, 這就需要我們記住每個虛擬環境所在的目錄.

一種解決辦法是: 將所有的虛擬環境目錄全部都集中起來, 並且針對不同的目錄做不同的事
使用virtualenvwrapper管理你的虛擬環境(virtualenv), 其實它就是統一管理虛擬環境的目錄, 並且省去了source的步驟.

1. 安裝wirtualenvwrapper

pip3 install -i https://pypi.douban.com/simple virtualenvwrapper

2. 設定Linux的環境變數, 每次啟動就載入virtualenvwrapper

#開啟這個使用者環境變數配置檔案,寫入以下資訊,export 就是讀取一段shell變數的命令
vim   ~/.bashrc      #這個檔案代表使用者環境變數,每次登陸時候載入
export WORKON_HOME=~/Envs   #設定virtualenv的統一管理目錄
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'   #新增virtualenvwrapper的引數,生成乾淨隔絕的環境
export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3.6     #指定python直譯器,(這個得根據你自己機器環境來配)
source  /opt/python36/bin/virtualenvwrapper.sh      #執行virtualenvwrapper安裝指令碼,這個指令碼放在你的python3.6直譯器bin目錄下

--------------------------------------------------------------
# 讀取檔案, 使其生效, 此時已經可以使用virtalenvwrapper
source ~/.bashrc

3. 基本使用virtalenvwrapper

# 建立一個虛擬環境
mkvirtualenv  虛擬環境名    # 會在統一設定的virtalenv統一管理目錄(Envs)下建立一個資料夾
# 建立成功後會自動進入虛擬環境, 工作之前需要對虛擬環境進行啟用
workon  虛擬環境名        # workon還可以任意停止你當前的環境, 可以在多個虛擬環境中來回切換
# 手動停止虛擬環境
deavtivate
# 刪除虛擬環境, 需要先退出虛擬環境
rmvirtalenv  虛擬環境名
# 列舉所有的環境
lsvirtalenv
# 導航到當前啟用的虛擬環境的目錄中(即直接進入虛擬環境的目錄, 此命令需要啟用虛擬環境)
cdvirtalenv
# 直接進入pip3軟體包的目錄
cdsitepackages