个人博客,记录知识防止遗忘
python的虚拟环境(venv)使用
python的虚拟环境(venv)使用

python的虚拟环境(venv)使用

实际使用中,一台主机上经常会部署多个python脚本,而不同的脚本可能依赖的python版本都不尽相同。

例如以下场景:
脚本aaa.py需要使用python2.7版本,脚本bbb.py需要使用python3.7版本

这时如若将2.7和3.7全部安装,则脚本执行可能会有影响。
最好的方法是:针对每一个项目,都建立其专属的虚拟环境

实现venv虚拟环境主要是用virtualenv
此外还有python3.4以后自带的venv模块,以及多环境的管理工具virtualenvwrapper

内容大纲

1    virtualenv

安装 virtualenv

# 指定镜像源
pip3 install virtualenv   -i https://pypi.tuna.tsinghua.edu.cn/simple/

# 也可以先永久指定pip源,再安装所需模块
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
# 查看当前pip镜像源
pip3 config list
pip3 install virtualenv

创建

# 创建虚拟环境caojie1
virtualenv caojie1

#创建纯净的虚拟环境caojie1
virtualenv caojie1 --no-site-packages
#virtualenv 版本20以后的,默认就是纯净,不必再加 --no-site-packages

#virtualenv --version 可查看当前版本

进入

# 进入并使用虚拟环境
source caojie1/bin/activate

退出

# 退出当前虚拟环境
deactivate

image.png

2    使用python的venv模块直接生成

python3.4 以上版本,可以直接用venv模块创建一个虚拟环境,不用自己去使用pip安装virtualenv

新建一个名为caojie2的虚拟环境
python3 -m venv  caojie2

其他操作的命令与上述的virtualenv一致

3    使用virtualenvwrapper集中管理

上述2种方法生成的venv都在当前目录下,若有时候需要在好几个环境中频繁切换时就很麻烦。需要不停的进入不同目录执行source命令,另外也不方便统计当前机器上总共有多少个虚拟环境

为了解决上述问题,virtualenvwrapper应运而生,
使用此工具可以更方便的管理虚拟环境,包括创建、切换、删除等操作都可以很快速的执行

安装
linux 中名为virtualenvwrapper,windows中为 virtualenvwrapper-win

pip3 install virtualenvwrapper

# 环境变量配置
cat >> ~/.bash_profile << 'EOF'
# virtualenvwrapper
if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
    export WORKON_HOME=$HOME/.virtualenvs 
    VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
    source /usr/local/bin/virtualenvwrapper.sh
fi
EOF
source ~/.bash_profile

创建新的虚拟环境

mkvirtualenv -p python3 caojie1
mkvirtualenv -p python3 caojie2
mkvirtualenv -p python3 caojie3
mkvirtualenv -p python3 caojie4

查看当前所有的虚拟环境

workon

进入(切换)

workon caojie3

离开

deactivate

删除

rmvirtualenv caojie{1,2,3,4}

image.png
image.png

4    crontab 使用venv运行脚本

# 00 10 * * * source /data/py3_venv_aaa/bin/activate && python aaa.py ; deactivate

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注