美文网首页人生苦短,我用Pythonpython跨坑技巧
阿里大牛深入浅出python虚拟环境经典案例(文末彩蛋)

阿里大牛深入浅出python虚拟环境经典案例(文末彩蛋)

作者: 宇哥聊AI | 来源:发表于2018-10-10 16:04 被阅读92次

    关于python虚拟环境

    (1)场景阐述:有两个项目A和B,都需要使用到三方模块requests,但是所需要的版本不相同,而在默认情况下,使用的requests都是来自全局的python环境的,所以不可能提供给两个项目不同版本的同一个模块

    (2)解决方案:创建两个独立的python环境,分别供给两个项目使用,这样在不同的虚拟环境中可以安装项目对应的三方模块版本

    (3)python虚拟环境概念:上述提到的独立的python环境就是python虚拟环境,需要注意的是python虚拟环境是完全模拟系统全局python环境的使用的

    (4)python虚拟环境中的内容:根据系统全局python环境,python虚拟环境中必须要有python解释器、包和模块管理器、标准/三方包的存放目录(LIB/site-packages)

    (5)创建虚拟环境的三方包:virtualenv

    关于python虚拟环境的使用步骤

    (1)第一步:创建python虚拟环境

    一.新建文件夹,一般来说python虚拟环境和对应的项目应该放在同一个文件夹下,在系统shell脚本中进入该文件夹路径,输入命令即可在文件夹中创建一个虚拟环境。这里有两个不同的创建方式,方式1.virtualenv 虚拟环境名称,表示创建一个完全独立的,与系统全局python换进无关的python虚拟环境;方式2.virtualenv --system-site-packages 虚拟环境名称,表示创建的虚拟环境中的三方库与全局python环境中的三方库相连接,即如果虚拟环境中没有需要的三方库,就会自动去全局python环境中去找

    二.虚拟环境中的内容:

    其中Scripts目录中包含了python解释器和包管理器:

    python解释器是python.exe,包管理器包括pip.exe、wheel.exe、easy_install.exe

    LIB目录中是标准库

    site-packages目录中是三方包

    (2)第二步:激活虚拟环境

    在系统shell脚本中进入虚拟环境中的Scripts目录,该目录下有两个文件,分别是activate.bat和activate,两个文件内容相同,随便输入一个到shell脚本中执行:

    这时会看到在命令的最前面出现虚拟环境的名称,证明虚拟环境已经激活。需要注意的是,激活了虚拟环境之后,系统的全局python环境就会自动关闭,可以退出激活状态后手动切换到其他的虚拟环境

    (3)第三步:激活下的操作

    python虚拟环境被激活后,所有以前在系统全局环境中进行的操作,将面向的是当前被激活python虚拟环境,如三方包的操作,下载和安装操作等等其他操作,这时三方包将被安装在当前被激活python虚拟环境下的site-packages目录下

    (4)第四步:退出虚拟环境

    在系统shell脚本中进入虚拟环境中的Scripts目录,该目录下有一个文件,名为deactivate.bat,输入该名称,就可以退出当前被激活python虚拟环境,需要注意的是,退出虚拟环境之后,系统全局python环境自动打开,所有操作将再次面向系统全局python环境

    (5)第五步:删除虚拟环境

    直接删除创建的虚拟环境的文件夹即可

    关于virtual项目的交接

    (1)将自己电脑上做好的virtual项目交给别人,这就是项目的交接,项目交接有两种方式,第一是直接将包含项目和虚拟环境的文件夹整个发给别人,缺陷是如果文件夹过于巨大,则交接过程非常耗时;第二是使用pip冻结需求文档,再将项目所需要的三方包名称及对应的版本做成的需求文档和项目发给别人,对方自行创建一个虚拟环境,在虚拟环境中根据需求文档内容进行下载即可

    (2)pip冻结需求文档操作:

    前者是对所有已经安装的三方包进行需求文档冻结,将项目所需要的三方包名称及对应的版本做成的需求文档;后者是在对方的虚拟环境中对发过来的需求文档进行操作,下载其中的三方包

                               点击链接获取免费学习资料

    相关文章

      网友评论

        本文标题:阿里大牛深入浅出python虚拟环境经典案例(文末彩蛋)

        本文链接:https://www.haomeiwen.com/subject/xsapaftx.html