• Python虚拟环境


    python虚拟环境就是让不同的项目有不同的工作环境, 每个项目可以有不同版本的依赖包,而且不同的信赖之间相互隔离. 比如, 项目A依赖package version 1.x 而项目B依赖package version 4.x, 我们就可以创建两个虚拟环境, 分别装上package version 1.x 和4.x就可以了.

    virtualenv

    vitualenv可以创建隔离的Python环境. 在使用virtualenv时, 它会创建一个目录包含所有的本虚拟环境运行所需要的可执行文件,

    通过pip安装virtualenv:

    $ pip install virtualenv
    

    检查安装的版本:

    $ virtualenv --version
    

    基本用法:

    1.为项目创建一个虚拟环境

    $ cd project_floder   # 打开虚拟环境文件夹放置的地方
    
    $ virtualenv my_project   # 会在当前文件夹下创建一个文件夹, 该文件夹下包含Python的可执行文件, 以及一个pip库可以用来安装其安的包. 虚拟环境的名字(在这个例子中, 是my_project, 就是virtualenv后面的文件夹的名字) 可以是任意的.
    

    在创建时可以指定不同的Python解释器的版本:

    $ virtualenv -p /usr/bin/python2.7 my_project
    
    或者在~/.bashrc中声明变量VIRTUALENVWRAPPER_PYTHON更改全局的PYthon解释器:
    
    $ export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7
    

    2.激活虚拟环境

    $ source my_project/bin/activate
    
    (my_project) [root@localhost venv]# 
    

    激活以后当前虚拟环境的名字会显示在最左边的括号里面(如上面所示). 以后再安装的包就会装在my_project

    文件夹下, 而不会和全局的python混淆.

    安装package

    (my_project) [root@localhost venv]# pip install package
    

    3.工作完毕后就可以deactivate.

    (my_project) [root@localhost venv]# deactivate
    

    4.删除一个虚拟环境, 仅需要删除文件夹(my_project)即可.

    # rm -rf my_project
    

    列出所有创建的虚拟环境:

    # virtualenv list 
    

    virtualenvwrapper

    virtualenvwrapper是virtualenv的一个扩展. virtualenvwrapper可以让创建和管理虚拟环境更加的简单. 当然它也是将所有的虚拟环境需要的文件放在同一个文件夹下.

    为了安装virtualenvwrapper首先要安装virtualenv.而且在使用需要执行, source /usr/bin/virtualenvwrapper.sh, 也可以将上述命令添加到~/.bashrc中.

    $ pip install virtualenvwrapper
    $ export WORKON_HOME=~/Envs
    $ source /usr/local/bin/virtualenvwrapper.sh
    

    用法:

    1.创建虚拟环境:

    # mkvirtualenv my_project
    
    New python executable in my_project/bin/python
    
    Installing Setuptools........................................................................................................................done.
    
    Installing Pip.....................................................................................................................................done.
    
    virtualenvwrapper.user_scripts creating /home/test/.virtualenvs/my_project/bin/predeactivate
    
    virtualenvwrapper.user_scripts creating /home/test/.virtualenvs/my_project/bin/postdeactivate
    
    virtualenvwrapper.user_scripts creating /home/test/.virtualenvs/my_project/bin/preactivate
    
    virtualenvwrapper.user_scripts creating /home/test/.virtualenvs/my_project/bin/postactivate
    
    virtualenvwrapper.user_scripts creating /home/test/.virtualenvs/my_project/bin/get_env_details
    (my_project) [root@localhost ~]# 
    
    

    创建完成以后, 会直接进入到虚拟环境my_project.
    注意:如果没有export WORKON_HOME默认路径在~/.virtualenvs/下.
    2. 安装软件包与virtualenv下相同.

    (my_project) [root@localhost ~]# pip install django
    Collecting django
      Downloading Django-1.11.2-py2.py3-none-any.whl (6.9MB)
        100% |████████████████████████████████| 7.0MB 82kB/s 
    Collecting pytz (from django)
      Using cached pytz-2017.2-py2.py3-none-any.whl
    Installing collected packages: pytz, django
    Successfully installed django-1.11.2 pytz-2017.2
    
    1. 使用lssitepackages列出已安装的软件包.
    (my_project) [root@localhost ~]# lssitepackages 
    django                   pip                  pytz-2017.2.dist-info        wheel-0.29.0.dist-info
    Django-1.11.2.dist-info  pip-9.0.1.dist-info  setuptools
    easy_install.py          pkg_resources        setuptools-36.0.1.dist-info
    easy_install.pyc         pytz                 wheel
    
    1. 使用workon在不同的虚拟环境下切换.
    # 创建虚拟环境my_project2
    (my_project) [root@localhost ~]# mkvirtualenv my_project2
    New python executable in /root/.virtualenvs/my_project2/bin/python2
    Also creating executable in /root/.virtualenvs/my_project2/bin/python
    Installing setuptools, pip, wheel...done.
    virtualenvwrapper.user_scripts creating /root/.virtualenvs/my_project2/bin/predeactivate
    virtualenvwrapper.user_scripts creating /root/.virtualenvs/my_project2/bin/postdeactivate
    virtualenvwrapper.user_scripts creating /root/.virtualenvs/my_project2/bin/preactivate
    virtualenvwrapper.user_scripts creating /root/.virtualenvs/my_project2/bin/postactivate
    virtualenvwrapper.user_scripts creating /root/.virtualenvs/my_project2/bin/get_env_details
    (my_project2) [root@localhost ~]#
    # 可以看到在创建完my_project2时, 已经切换进去, 然后我们重新切换到my_project
    (my_project2) [root@localhost ~]# workon my_project
    (my_project) [root@localhost ~]#
    # workon还可以列出已创建的虚拟环境
    (my_project) [root@localhost ~]# workon 
    my_project2
    my_project
    

    注意:virtualenvwrapper提供tab补全功能. 当你创建了许多虚拟环境, 而又无法全部记住它们的名字的时候会非常有用.
    5.关闭虚拟环境

    $ deactivate
    

    6.删除虚拟环境

    $ rmvirtualenv my_project
    Removing my_project...
    

    参考
    1.Virtual Environmentshttp://python-guide-pt-br.readthedocs.io/en/latest/dev/virtualenvs/
    2.https://virtualenvwrapper.readthedocs.io/en/latest/index.html

  • 相关阅读:
    bash:express:command not found
    Jquery的window.onload实现
    元素的class和id问题
    安装angular-cli
    [(ngModel)]的实现原理
    bodyparser
    git push不用重复输入用户名和密码(解决方案)
    git提交项目到已存在的远程分支
    angular的$filter服务
    网站上如何添加显示favicon
  • 原文地址:https://www.cnblogs.com/zhuzi8849/p/7043316.html
Copyright © 2020-2023  润新知