• 使用virtualenv搭建独立的Python环境


        virtualenv可以搭建虚拟且独立的python环境,可以使每个项目环境与其他项目独立开来,保持环境的干净,解决包冲突问题。
    一、安装virtualenv
        virtualenv实际上是一个python包,所以我们可以用easy_install或者pip安装。下面介绍在CentOS系统上的安装方法。
        easy_install安装方式:
    1
    2
    [root@localhost ~]# yum install python-setuptools python-devel
    [root@localhost ~]# easy_install virtualenv
        pip安装方式:
    1
    2
    [root@localhost ~]# easy_install pip
    [root@localhost ~]# pip install virtualenv
        yum安装方式(epel源):
    1
    [root@localhost ~]# yum install python-virtualenv
    二、创建python虚拟环境
        使用virtualenv命令创建python虚拟环境:virtualenv [虚拟环境名称]
    1
    2
    3
    [root@localhost ~]# virtualenv env1
    New python executable in env1/bin/python
    Installing setuptools, pip...done.
        执行后,在本地会生成一个与虚拟环境同名的文件夹。
        如果你的系统里安装有不同版本的python,可以使用--python参数指定虚拟环境的python版本:
    1
    2
    3
    4
    5
    [root@localhost ~]# virtualenv --python=/usr/local/python-2.7.8/bin/python2.7 env1
    Running virtualenv with interpreter /usr/local/python-2.7.8/bin/python2.7
    New python executable in env1/bin/python2.7
    Also creating executable in env1/bin/python
    Installing setuptools, pip...done.
        实测默认情况下虚拟环境不会依赖系统环境的global site-packages。比如系统环境里安装了MySQLdb模块,在虚拟环境里import MySQLdb会提示ImportError。如果想依赖系统环境的第三方软件包,可以使用参数--system-site-packages。此外,也可使用virtualenvwrapper的toggleglobalsitepackages命令控制当前环境是否使用global site-packages。
    1
    2
    3
    [root@localhost ~]# virtualenv --system-site-packages env1
    New python executable in env1/bin/python
    Installing setuptools, pip...done.
    三、启动虚拟环境
        进入虚拟环境目录,启动虚拟环境,如下:
    1
    2
    3
    4
    [root@localhost ~]# cd env1/
    [root@localhost env1]# source bin/activate
    (env1)[root@localhost env1]# python -V
    Python 2.7.8
        此时命令行前面会多出一个括号,括号里为虚拟环境的名称。以后easy_install或者pip安装的所有模块都会安装到该虚拟环境目录里。
    四、退出虚拟环境
        退出虚拟环境:deactivate
    1
    2
    (env1)[root@localhost env1]# deactivate
    [root@localhost env1]#
    五、使用virtualenvwrapper
        virtualenvwrapper是virtualenv的扩展工具,可以方便的创建、删除、复制、切换不同的虚拟环境。
        1.安装virtualenvwrapper
    1
    [root@localhost ~]# easy_install virtualenvwrapper
        或者:
    1
    [root@localhost ~]# pip install virtualenvwrapper
        创建一个文件夹,用于存放所有的虚拟环境:
    1
    [root@localhost ~]# mkdir ~/workspaces
        设置环境变量,把下面两行添加到~/.bashrc里。
    1
    2
    [root@localhost ~]# export WORKON_HOME=~/workspaces
    [root@localhost ~]# source /usr/bin/virtualenvwrapper.sh
        然后就可以使用virtualenvwrapper了。
        2.创建虚拟环境:mkvirtualenv [虚拟环境名称]
    1
    2
    3
    4
    5
    6
    7
    [root@localhost ~]# mkvirtualenv env1
    New python executable in env1/bin/python
    Installing setuptools, pip...done.
    (env1)[root@localhost ~]# mkvirtualenv env2
    New python executable in env2/bin/python
    Installing setuptools, pip...done.
    (env2)[root@localhost ~]#
        注意:mkvirtualenv可以使用virtualenv的参数,比如--python来指定python版本。创建虚拟环境后,会自动切换到此虚拟环境里。虚拟环境目录都在WORKON_HOME里。
        3.列出虚拟环境:lsvirtualenv -b
    1
    2
    3
    (env2)[root@localhost ~]# lsvirtualenv -b
    env1
    env2
        4.切换虚拟环境:workon [虚拟环境名称]
    1
    2
    3
    (env2)[root@localhost ~]# workon env1
    (env1)[root@localhost ~]# echo $VIRTUAL_ENV
    /root/workspaces/env1
        5.查看环境里安装了哪些包:lssitepackages
        6.进入当前环境的目录:cdvirtualenv [子目录名]
    1
    2
    3
    4
    5
    6
    (env1)[root@localhost ~]# cdvirtualenv
    (env1)[root@localhost env1]# pwd
    /root/workspaces/env1
    (env1)[root@localhost env1]# cdvirtualenv bin
    (env1)[root@localhost bin]# pwd
    /root/workspaces/env1/bin
        进入当前环境的site-packages目录:cdsitepackages [子目录名]
    1
    2
    3
    4
    5
    6
    (env1)[root@localhost env1]# cdsitepackages
    (env1)[root@localhost site-packages]# pwd
    /root/workspaces/env1/lib/python2.6/site-packages
    (env1)[root@localhost site-packages]# cdsitepackages pip
    (env1)[root@localhost pip]# pwd
    /root/workspaces/env1/lib/python2.6/site-packages/pip
        7.控制环境是否使用global site-packages:toggleglobalsitepackages
        8.复制虚拟环境:cpvirtualenv [source] [dest]
    1
    2
    3
    [root@localhost ~]# cpvirtualenv env1 env3
    Copying env1 as env3...
    (env3)[root@localhost ~]#
        9.退出虚拟环境:deactivate
        10.删除虚拟环境:rmvirtualenv [虚拟环境名称]
    1
    2
    [root@localhost ~]# rmvirtualenv env2
    Removing env2...






  • 相关阅读:
    8.10
    今日头条笔试题 1~n的每个数,按字典序排完序后,第m个数是什么?
    Gym 100500B Conference Room(最小表示法,哈希)
    CodeForces 438D The Child and Sequence(线段树)
    UVALIVE 6905 Two Yachts(最小费用最大流)
    Gym Conference Room (最小表示法,哈希)
    hdu 2389 Rain on your Parade(二分图HK算法)
    Codeforces Fox And Dinner(最大流)
    zoj 3367 Counterfeit Money(dp)
    ZOJ3370. Radio Waves(2-sat)
  • 原文地址:https://www.cnblogs.com/jins-note/p/9550348.html
Copyright © 2020-2023  润新知