zoukankan      html  css  js  c++  java
  • python——虚拟环境之virtualenv(windows10,64位)

    1 问题

      当我们拥有两个甚至多个项目A、B、C......,各个项目正常运行需求的python运行环境都不相同。而默认情况下,不管哪个项目,使用的都是全局的Python环境。上述情况,造成的问题就是,A、B、C等项目,只能运行一个;如果运行另一个,必须安装与之匹配的库版本。

    2 解决思路

      创建一个完全独立的局部python环境(或叫做虚拟环境)。在此环境中,安装所有与某个项目相匹配库即可。总之,一个项目,使用一个虚拟环境;互相之间,没有干扰。

    3  具体解决步骤

      3.1  安装第三方包virtualenv

        当电脑里面有多个版本的python的时,可以指定版本来进行安装。代码见下:

          pip install virtualenv

          或者

          python3 -m pip install virtualenv

       

      3.2 virtualenv的简单应用

        3.2.1 创建一个局部的隔离的虚拟环境

         打开命令提示符,cd进入到项目myproject(必须根据自己的项目进行修改)所在路径,创建项目myproject的虚拟环境。

          (1) 语法
            virtualenv 虚拟环境名称
            例如:virtualenv ENV
          (2) 可选参数

          (i) -p :指明Python版本创建,到时候就使用此版本的解释器,默认是你安装viretual 包的时候,用的python解释器
          例如:virtualenv -p  C:Python27python.exe ENV
          (ii) --system-site-packages:继承系统的三方库。到时候,检索库的时候,也会到系统的三方库中查找,如果不加此项,到时候只会在当前的虚拟环境中找
          例如:virtualenv --system-site-packages ENV

         创建完成后,会在myproject文件夹下自动生成一个ENV文件夹,效果见下图:

     

        ENV文件夹里面的内容见下图:

        

        3.2.2 激活虚拟环境
          (1) 语法
            打开命令提示符,进入到虚拟环境目录/scripts文件夹中,输入activate.bat
          (2) 界面效果

        

          (3) 作用效果
            在环境的激活状态,后续所有的操作都是基于这个虚拟的Python环境包的安装和卸载。代码的执行,比如:pip install 包名(如requests)
          如果不激活创建的虚拟环境,到时候会被安装在全局Python环境中。激活后,则会安装在虚拟环境中。

        3.2.3 在激活状态下的操作
          操作三方库、执行py文件等等
          注意:以上所有操作,均作用在被激活的虚拟环境中

        3.2.4 退出虚拟环境
          (1) 语法
            进入到虚拟环境目录/scripts文件夹中,输入命令deactivate.bat
          (2) 界面效果
        

          (3) 作用效果
            
    退出后,所有后续操作,又会再次的作用于全局的Python环境中
        
    3.2.5 删除虚拟环境

          直接把项目文件目录下的ENV文件夹删除即可。

      更多使用命令见官网:https://virtualenv.pypa.io/en/latest/userguide/

    4 补充
      
    以后把项目给别人的时候,就可以连同虚拟环境和项目一起拷贝给别人。但是当虚拟环境非常大的时候,这种方法显然不实际。这就需要用到另一种方法了。
    即在虚拟环境中,冻结依赖需求文本,把项目和依赖需求文本给别人。

  • 相关阅读:
    SQL中关于日期的常用方法
    HTMLDOM中三种元素节点、属性节点、文本节点的测试案例
    MySQL工具:管理员必备的10款MySQL工具
    The GPG keys listed not correct
    Atitit. 真正的全中国文字attilax易语言的特点以及范例
    Atitit.编程语言新特性 通过类库框架模式增强 提升草案 v3 q27
    Atitit.编程语言新特性 通过类库框架模式增强 提升草案 v3 q27
    Atitit .jvm 虚拟机指令详细解释
    Atitit .jvm 虚拟机指令详细解释
    Atitit.java jna  调用c  c++ dll的原理与实践  总结  v2  q27
  • 原文地址:https://www.cnblogs.com/cuizhu/p/9456390.html
Copyright © 2011-2022 走看看