python virtualenv

安装

1
2
3
4
5
6
7
8
# ubuntu
$ sudo apt install python3-pip # 安装pip3
## OR
$ sudo apt-get install python-pip python-dev python-virtualenv # for Python 2.7
$ sudo apt-get install python3-pip python3-dev python-virtualenv # for Python 3.n

# pip
$ pip3 install virtualenv

新建虚拟环境

1
2
3
4
5
6
$ virtualenv venv	# sample

$ virtualenv --no-site-packages venv # 不使用外部库; 默认不使用,在virtualenv>=20版本中移除,添加上可能会报错
$ virtualenv --system-site-packages venv # 使用系统库
$ virtualenv -p python3 venv # 指定Python版本
$ virtualenv --copies venv # 复制Python程序等,而不是链接

激活新环境

1
2
3
4
5
6
7
# 进入环境
$ cd venv
# 激活
$ source bin/activate

$ source bin/activate # bash, sh, ksh, or zsh
$ source bin/activate.csh # csh or tcsh

退出环境

1
deactivate

配合supervisor

supervisor配置文件

1
2
3
4
5
6
7
8
9
10
11
[program:myproj-uwsgi]
process_name=myproj-uwsgi
command=/home/myuser/.virtualenvs/myproj/bin/uwsgi
--chdir /home/myuser/projects/myproj
-w myproj:app
environment=PATH="/home/myuser/.virtualenvs/myproj/bin:%(ENV_PATH)s"
user=myuser
group=myuser
killasgroup=true
startsecs=5
stopwaitsecs=10

导出环境

1
2
3
4
# 导出
$ pip freeze > requirements
# 安装
$ pip install -r requirements