搭建 Python 虚拟环境
可以方便Python2,Python3 共存。避免包的混乱和版本的冲突。为每个程序单独创建虚拟环境可以保证程序中能访问虚拟环境中的包,保持解释器环境的干净整洁。实现虚拟环境有2种方法:virtualenv or virtualenvwrapper。
介绍virtualenvwrapper
virtualenvwrapper 是对 virtualenv 的功能扩展,可以管理全部的虚拟环境,用单个命令方便切换不同的虚拟环境。
安装
在使用pip的时候加参数 -i https://pypi.tuna.tsinghua.edu.cn/simple 例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenvwrapper,这样就会从清华这边的镜像去安装virtualenvwrapper库。
windows下运行 pip install virtualenvwrapper-win
[root@Python01 yum.repos.d]# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenvwrapper
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting virtualenvwrapper
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/2b/8c/3192e10913ad945c0f0fcb17e9b2679434a28ad58ee31ce0104cba3b1154/virtualenvwrapper-4.8.2-py2.py3-none-any.whl
Collecting virtualenv-clone (from virtualenvwrapper)
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/5b/66/6b0265b0f70222ebf8947989092546492b4ef280f560ddf92b80e9d7172a/virtualenv_clone-0.5.0-py2.py3-none-any.whl
Collecting virtualenv (from virtualenvwrapper)
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/6a/d1/e0d142ce7b8a5c76adbfad01d853bca84c7c0240e35577498e20bc2ade7d/virtualenv-16.2.0-py2.py3-none-any.whl (1.9MB)
100% |████████████████████████████████| 1.9MB 8.2MB/s
Collecting stevedore (from virtualenvwrapper)
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/35/fa/8683fab2a6e15ecfe107996e56fab91e52fe3ec0b40ca9440a0e1ffe6892/stevedore-1.30.0-py2.py3-none-any.whl (42kB)
100% |████████████████████████████████| 51kB 16.9MB/s
Requirement already satisfied: setuptools>=18.0.0 in /usr/local/lib/python3.6/site-packages (from virtualenv->virtualenvwrapper) (40.6.2)
Collecting pbr!=2.1.0,>=2.0.0 (from stevedore->virtualenvwrapper)
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/f3/04/fddc1c2dd75b256eda4d360024692231a2c19a0c61ad7f4a162407c1ab58/pbr-5.1.1-py2.py3-none-any.whl (106kB)
100% |████████████████████████████████| 112kB 11.3MB/s
Collecting six>=1.10.0 (from stevedore->virtualenvwrapper)
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl
Installing collected packages: virtualenv-clone, virtualenv, pbr, six, stevedore, virtualenvwrapper
Successfully installed pbr-5.1.1 six-1.12.0 stevedore-1.30.0 virtualenv-16.2.0 virtualenv-clone-0.5.0 virtualenvwrapper-4.8.2
[root@Python01 yum.repos.d]#
修改~/.bashrc的参数
[root@Python01 yum.repos.d]# vi ~/.bashrc
[root@Python01 yum.repos.d]# more ~/.bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
#设置virtualenv的统一管理目录
export WORKON_HOME=~/Envs
#添加virtualenvwrapper的参数,生成干净隔绝的环境
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
#指定python解释器
export VIRTUALENVWRAPPER_PYTHON=/opt/python34/bin/python3
#执行virtualenvwrapper安装脚本
source /opt/python34/bin/virtualenvwrapper.sh
让环境变量生效
[root@Python01 yum.repos.d]# source ~/.bashrc
virtualenvwrapper.user_scripts creating /root/pyvirtualenv/.virtualenvs/premkproject
virtualenvwrapper.user_scripts creating /root/pyvirtualenv/.virtualenvs/postmkproject
virtualenvwrapper.user_scripts creating /root/pyvirtualenv/.virtualenvs/initialize
virtualenvwrapper.user_scripts creating /root/pyvirtualenv/.virtualenvs/premkvirtualenv
virtualenvwrapper.user_scripts creating /root/pyvirtualenv/.virtualenvs/postmkvirtualenv
virtualenvwrapper.user_scripts creating /root/pyvirtualenv/.virtualenvs/prermvirtualenv
virtualenvwrapper.user_scripts creating /root/pyvirtualenv/.virtualenvs/postrmvirtualenv
virtualenvwrapper.user_scripts creating /root/pyvirtualenv/.virtualenvs/predeactivate
virtualenvwrapper.user_scripts creating /root/pyvirtualenv/.virtualenvs/postdeactivate
virtualenvwrapper.user_scripts creating /root/pyvirtualenv/.virtualenvs/preactivate
virtualenvwrapper.user_scripts creating /root/pyvirtualenv/.virtualenvs/postactivate
virtualenvwrapper.user_scripts creating /root/pyvirtualenv/.virtualenvs/get_env_details
新建虚拟环境
新建虚拟环境的指令为mkvirtualenv vname,默认把路径放到了$WORKON_HOME下,建好之后默认就已经进入这个虚拟环境了[命令行前会有一个括号+环境名的提示],退出是deactivate
[root@Python01 yum.repos.d]# mkvirtualenv django_oracle
Using base prefix '/usr/local'
New python executable in /root/pyvirtualenv/.virtualenvs/django_oracle/bin/python3.6
Also creating executable in /root/pyvirtualenv/.virtualenvs/django_oracle/bin/python
Installing setuptools, pip, wheel...
done.
virtualenvwrapper.user_scripts creating /root/pyvirtualenv/.virtualenvs/django_oracle/bin/predeactivate
virtualenvwrapper.user_scripts creating /root/pyvirtualenv/.virtualenvs/django_oracle/bin/postdeactivate
virtualenvwrapper.user_scripts creating /root/pyvirtualenv/.virtualenvs/django_oracle/bin/preactivate
virtualenvwrapper.user_scripts creating /root/pyvirtualenv/.virtualenvs/django_oracle/bin/postactivate
virtualenvwrapper.user_scripts creating /root/pyvirtualenv/.virtualenvs/django_oracle/bin/get_env_details
(django_oracle) [root@Python01 yum.repos.d]#
Virtualenvwrapper常用指令
命令 | 说明 |
---|---|
mkvirtualenv | 创建环境 |
workon | 切换到环境 |
deactivate | 注销当前环境 |
lsvirtualenv | 列出所有环境 |
rmvirtualenv | 删除环境 |
cpvirtualenv | 复制环境 |
cdsitepackages | cd到当前环境的site-packages目录 |
lssitepackages | 列出当前环境中site-packages内容 |
setvirtualenvproject | 绑定现存的项目和环境 |
wipeenv | 清除环境内所有第三方包 |