Python實踐31-用virtualenv構建Python2和Python3的運行環境

什麼是VirtualEnv

  • virtualenv is a tool to create isolated Python environments.
  • The basic problem being addressed is one of dependencies and versions, and indirectly permissions. Imagine you have an application that needs version 1 of LibFoo, but another application requires version 2. How can you use both these applications? If you install everything into /usr/lib/python2.7/site-packages (or whatever your platform』s standard location is), it』s easy to end up in a situation where you unintentionally upgrade an application that shouldn』t be upgraded.
  • virtualenv就是用來為一個應用創建一套「隔離」的Python運行環境
  • 典型的一種場景就是你的機器上同時需要運行Python2和Python3兩個版本的Python,那麼用virtualenv可以非常方便地管理不同版本的Python
  • 當然,更多的時候virtualenv也被用來創建同一Python版本+不同版本第三方庫的運行環境。

安裝virtualenv

pip install virtualenv

CentOS 7上安裝Python3

  • yum install epel-release
  • 或者 wget -O /etc/yum.repos.d/epel.repo mirrors.aliyun.com/repo
  • yum install python34
  • 檢查安裝 $ python3
  • 升級剛剛安裝的virtualenv: pip install --upgrade virtualenv (here was a bug in the OPs version of virtualenv, so we run this command to fix it)

創建兩套Python運行環境

創建Python2的環境

  • virtualenv env2x # 使用Python2創建環境
  • cd env2x
  • source ./bin/activate # 進入
  • 使用你的python2環境
  • deactivate # 退出

創建Python3的環境

  • virtualenv –p python3 env3x # 使用Python3創建環境
  • cd env3x
  • source ./bin/activate # 進入
  • 使用你的python3環境
  • deactivate # 退出

原理

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

如果覺得本文對您有幫助,敬請點贊。


推薦閱讀:

Python實踐19-生成器
Python 3.5 MySQL支持庫
Django表單的三種玩法。
Scrapy如何動態調整爬取速度?
基於Tor網路的多ip爬蟲

TAG:Python | Python入門 | Python開發 |