Python学习之virtualenv

用过virtualenv的人都说好,可是我没有具体使用过,所以尝试了一下,用完我也说好~233333

1. 简介

virtualenv是一个python库,用于创建独立python开发及运行环境。一般linux环境下如果在全局用pip安装模块时需要使用sudo命令,可是在共享主机上将root权限交给一般用户是不显示而且不安全的。可是有了virtualenv, 普通用户就可以创建一个虚拟环境,然后在虚拟环境中以普通用户权限安装模块,更改环境变量,进行开发和运行python程序而不会影响系统环境的环境变量和Python模块。

2. 创建virtualenv环境

输入virtualenv venv创建名为venv的虚拟环境。
创建虚拟环境的常用选项:

–no-site-packages 不使用系统中的site packages
–system-site-package 使用系统中的site packages (据说是默认,但在我这默认是不使用的)
-p PYTHON_EXE, --python=PYTHON_EXE 使用指定的python解释器,这里的PYTHON_EXE在Windows下需要用绝对路径,比如C:\Python27\python.exe\

当然,也可以使用虚拟环境和系统配置文件来设置virtualenv默认创建选项,详情见这里

输出:

1
2
3
G:\>virtualenv venv
New python executable in venv\Scripts\python.exe
Installing setuptools, pip, wheel...done.

3. 进入及退出虚拟环境

进入venv目录,Linux下输入bin/activate, Windows下输入Scripts\activate进入虚拟环境。

1
2
G:\venv>Scripts\activate
(venv) G:\venv>

进入环境后,输入deactivate退出。

1
2
(venv) G:\venv>deactivate
G:\venv>

4. 使用虚拟环境

4.1 安装第三方模块

安装过程与平时相符(比如使用pip install), 只不过安装后的包会存储在虚拟环境中。

4.2 设置环境变量

Linux下输入export VAR1="value1", Windows下输入set VAR1=value1来设置虚拟环境的环境变量

1
2
3
4
(venv) C:\Users\Stdio\Desktop\temp\venv>set VAR1=value1

(venv) C:\Users\Stdio\Desktop\temp\venv>echo %VAR1%
value1

环境变量设置成功后,即可在Python程序中利用虚拟环境的环境变量进行程序配置(比如flask中的app.config.from_envvar("FLASK_SETTINGS"))。该环境变量只在虚拟环境中有效,退出虚拟环境后环境变量即消失。

5. 参考文档

  1. Virtualenv - virtualenv 13.1.2 documentation
  2. Virtualenv - virtualenv 1.7.1.2.post1 documentation 中文版
  3. virtualenv入门教程
  4. virtualenv – python虚拟沙盒
  5. 用virtualenv建立多个Python独立开发环境

6. 后记

又填完一个坑,本来打算昨天就写好的,结果昨天没写完…