首頁 > 軟體

Virtualenv 快速入門指南

2020-06-16 17:38:54

1. virtualenv概述

virtualenv 通過建立獨立Python開發環境的工具,來解決依賴、版本以及間接許可權問題。比如一個專案依賴Django1.3 而當前全域性開發環境為Django1.7,版本跨度過大, 導致不相容使專案無法正在執行,使用virtualenv可以解決這些問題。

virtualenv 建立一個擁有自己安裝目錄的環境,這個環境不與其他虛擬環境共用庫, 能夠方便的管理python版本和管理python庫。

2. 安裝Virtualenv

使用pip安裝Virtualenv

$ pip install virtualenv 
$ sudo pip install virtualenv #或者由於許可權問題使用sudo臨時提升許可權

3. virtualenv基本使用

3.1 使用virtualenv建立python環境

$ virtualenv test  #建立一個名為test的目錄,並且安裝了bin/python和bin/pip,建立了lib,include,bin目錄
    Using base prefix '/usr'
    New python executable in /home/zhangchengfei/test/bin/python3
    Also creating executable in /home/zhangchengfei/test/bin/python
    Installing setuptools, pip, wheel...done.

$ cd test
$ ll
    drwxrwxr-x  2 zhangchengfei zhangchengfei 4096  524 19:37 bin/
    drwxrwxr-x  2 zhangchengfei zhangchengfei 4096  524 19:37 include/
    drwxrwxr-x  3 zhangchengfei zhangchengfei 4096  524 19:37 lib/
    -rw-rw-r--  1 zhangchengfei zhangchengfei   60  524 19:37 pip-selfcheck.json
  • lib,所有安裝的python庫都會放在這個目錄中的lib/pythonx.x/site-packages/下
  • bin,bin/python是在當前環境是使用的python直譯器

如果在命令列中執行virtualenv --system-site-packages test,會繼承/usr/lib/python2.7/site-packages下的所有庫,最新版本virtualenv把存取全域性site-packages作為預設行為。

3.2 啟用virtualenv

  • test目錄下使用如下命令

    $ source ./bin/activate  # 啟用當前virtualenv
    (test) $ # 注意終端發生了變化
  • 使用pip檢視當前庫,顯示依賴並生成requirement檔案

    (test) $ pip list
    pip (8.1.2)
    setuptools (21.2.1)
    wheel (0.29.0) # 現在只有這三個
    
    pip freeze  # 顯示所有依賴
    pip freeze > requirement.txt  # 生成requirement.txt檔案
    pip install -r requirement.txt  # 根據requirement.txt生成相同的環境

3.3 關閉virtualenv

  • 使用下面命令

    $ deactivate

3.4 指定python版本

  • 可以使用-p PYTHON_EXE選項在建立虛擬環境的時候指定python版本

    
    # 建立python2.7虛擬環境
    
    $ virtualenv -p /usr/bin/python2.7 test
        Running virtualenv with interpreter /usr/bin/python2.7
        New python executable in /home/zhangchengfei/test/bin/python2.7
        Not overwriting existing python script /home/zhangchengfei/test/bin/python (you must use /home/zhangchengfei/test/bin/python2.7)
        Installing setuptools, pip, wheel...done.
    
    
    # 建立python3.4虛擬環境
    
    $ virtualenv -p /usr/local/bin/python3.4 test
        Running virtualenv with interpreter /usr/bin/python3.4
        Using base prefix '/usr'
        New python executable in /home/zhangchengfei/test/bin/python3.4
        Also creating executable in /home/zhangchengfei/test/bin/python
        Installing setuptools, pip, wheel...done.

4. 生成可打包環境

  • 某些特殊需求下,可能沒有網路,我們期望直接打包一個test,可以解壓後直接使用,這時候可以使用virtualenv -relocatable指令將test修改為可更改位置的test

    
    # 對當前已經建立的虛擬環境更改為可遷移
    
    [test]$ virtualenv --relocatable ./
        Making script /home/zhangchengfei/test/bin/wheel relative
        Making script /home/zhangchengfei/test/bin/pip3 relative
        Making script /home/zhangchengfei/test/bin/pip relative
        Making script /home/zhangchengfei/test/bin/easy_install-3.4 relative
        Making script /home/zhangchengfei/test/bin/pip3.4 relative
        Making script /home/zhangchengfei/test/bin/python-config relative
        Making script /home/zhangchengfei/test/bin/easy_install relative

【完】

Virtualenv建立虛擬環境安裝Flask  http://www.linuxidc.com/Linux/2016-04/130196.htm

Python 虛擬環境:Virtualenv  http://www.linuxidc.com/Linux/2015-08/121354.htm

CentOS6.5下使用Virtualenv搭建Python3開發環境  http://www.linuxidc.com/Linux/2015-08/121352.htm

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-07/132855.htm


IT145.com E-mail:sddin#qq.com