在开发 Python 程序写项目的时候,难免会用上很多第三方的包,而如果只使用系统安装的时候的包,有时候需要在不同版本下测试运行的时候就会混乱,这个时候就需要一个独立的 Python 环境。

先前条件,已经在机器上安装好 Python 环境。

virtualenv

能创建一个独立的 Python 环境,达到隔离的效果,在使用的时候能随意切换,达到不同项目使用不同环境的效果,解决包冲突的问题。

  • 安装

pip install virtualenv

  • 创建虚拟环境

virtualenv [新环境名]

  • 使用

source ./bin/activate

执行所创建的虚拟环境下的根目录的activate文件

  • 退出

deactivate

  • 删除

直接删除创建的文件夹就行

参考:廖雪峰 virtualenv

virtualenvwrapper

有上面的工具在使用的时候每次都需要 source ,而这个工具就对上面的使用进行多一层的封装,作为扩展来使用,可以更方便的切换环境,并且不像使用 virtualenv 一样随处都可以创建虚拟环境的文件目录,这个工具对虚拟环境的目录也进行统一管理,我们也不用去记目录所在地,就能直接在控制台上使用。

安装

pip install virtualenvwrapper

配置

  • 创建虚拟环境管理目录

mkdir $HOME/.local/virtualenvs

  • 在~/.bashrc中添加行:
export VIRTUALENV_USE_DISTRIBUTE=1
export WORKON_HOME=$HOME/.local/virtualenvs
if [ -e $HOME/.local/bin/virtualenvwrapper.sh ];then
    source $HOME/.local/bin/virtualenvwrapper.sh
else if [ -e /usr/local/bin/virtualenvwrapper.sh ];then
    source /usr/local/bin/virtualenvwrapper.sh
    fi
fi
export PIP_VIRTUALENV_BASE=$WORKON_HOME
export PIP_RESPECT_VIRTUALENV=true

WORKON_HOME:表示虚拟环境存放的目录。

  • 启动 virtualenvwrapper

source ~/.bashrc

使用

  • 创建虚拟环境

mkvirtualenv [环境名]

mkvirtualenv --python=python3 [环境名]

可以通过 --python=python3 的指令来安装不同的python版本

  • 删除

rmvirtualenv [环境名]

  • 激活

workon [环境名]

  • 退出

deactivate

  • 列出所有环境

workon 或者 lsvirtualenv -b

查看所有指令

virtualenvwrapper —help

参考:python虚拟环境virtualenvwrapper

问题

  • The path python3 (from –python=python3) does not exist

在使用 mkvirtualenv 命令来创建 python3 环境的时候出现这个错误,这时候尝试先安装对应的环境,之后再来执行这个命令,可能出现的原因是 mkvirtualenv 找不到 python3 相关的目录,猜测这个命令是基于本地环境来创建虚拟环境的,当在本地找不到相关的环境的时候就会异常,实测解决的方式就是下载 python3 的二进制文件编译安装,再来执行就能成功。

参考:CentOS 7 下 安装 Python3.7

  • mkvirtualenv 命令无效,找不到该命令

在使用的过程中,在 centos 系统下发现安装 virtualenvwrapper 之后的 virtualenvwrapper.sh 文件不在 /usr/local/bin/virtualenvwrapper.sh 下面,这个时候需要使用 find / -name virtualenvwrapper 命令来找到这个文件 /usr/bin/virtualenvwrapper.sh ,之后替换 .bashrc 文件配置中 的路径。

分类: 技术

0 条评论

发表回复

您的电子邮箱地址不会被公开。