06-Python-包&模块-虚拟环境

作者: 撩课学院 | 来源:发表于2018-12-05 15:41 被阅读6次

    学习地址:

    撩课-Python大数据+人工智能1
    撩课-Python大数据+人工智能2
    撩课-Python大数据+人工智能3
    撩课-Python大数据+人工智能4
    撩课-Python大数据+人工智能5
    撩课-Python大数据+人工智能6
    撩课-Python-GUI编程-PyQt5

    1.虚拟环境

    1).场景
            假如入当前有两个项目A和B;两个项目中都需要依赖requests库;但是需要的版本不一样
            而默认情况下,不管哪个项目,使用的都是全局的Python环境
                不能同时安装使用同一个库不同版本
                比如:requests库,要不就是1版本,要不就是2版本;不可能同时存在
            上述场景,造成的问题就是,A和B两个项目,只能运行一个;如果运行另一个,必须安装与之匹配的库版本
    
    2).解决方案
            使用虚拟环境,创建一个完全独立的局部Python环境
            在此环境中,安装所有与这个项目相匹配的库即可
            总之
                一个项目,使用一个局部的独立的“Python环境”;互相之间,没有干扰
        概念
            这个“局部的,独立的Python环境”就称为:虚拟环境
            完全模拟系统全局Python环境的使用
                安装
                卸载
                ...
        安装
            是一个三方包,名称为:
                virtualenv
            安装命令
                pip install virtualenv
            文档说明
                https://virtualenv.pypa.io/en/latest/userguide/
        使用
            第一步:创建一个局部的隔离的虚拟环境
                语法
                    virtualenv 虚拟环境名称
                    例:virtualenv ENV
                作用效果
                    
                    
                    
                可选参数
                    -p
                        指明Python版本创建
                            到时候就使用此版本的Python解释器来执行代码
                            默认是你安装virtualenv包的时候,所在的Python版本
                        例:virtualenv -p C:\Python\36\python3.exe ENV
                    --system-site-packages
                        继承系统的三方库
                            到时候,检索库的时候,也会到系统的三方库中找
                            如果不加此项,到时候只会在当前的虚拟环境中找
                        例:virtualenv --system-site-packages ENV
            第二步:激活虚拟环境
                语法
                    进入到虚拟环境目录/scripts文件夹中
                    activate.bat
                界面效果
                    
                作用效果
                    在环境的激活状态,后续所有的操作都是基于这个虚拟的Python环境
                        包的安装卸载查看等等
                        代码的执行
                    比如:
                        pip install requests
                            如果不激活创建的虚拟环境,到时候会被安装在全局环境
                            激活后,则会安装在虚拟环境中
                        python3 test.py
                            如果test.py中导入了某个包
                            会到虚拟环境中去查找相关包!
            第三步:在激活状态下,想干啥干啥
                操作三方库
                执行py文件
                ...
                注意
                    以上所有操作,均作用在被激活的虚拟环境中
            第四步:退出虚拟环境
                语法
                    进入到虚拟环境目录/scripts文件夹中
                    deactivate.bat
                界面效果
                    
                作用效果
                    退出后,所有后续操作,又会再次的作用于全局的Python环境中
            第五步:删除虚拟环境
                直接删除整个文件夹目录即可
    
    3).补充
                问题
                    以后,把项目给别人的时候,怎样能保证项目在别人电脑上跑得起来?
                解决
                    方案1:
                        连同虚拟环境和项目一起拷贝给别人
                    方案2:
                        在虚拟环境中,冻结依赖需求文本
                        把项目和依赖需求文本给别人
                        别人自己在本地创建一个新的虚拟环境,并根据依赖需求文本安装相关库
                        Pycharm使用虚拟环境
                                      实践
    

    2.虚拟环境进阶补充

    1).集中式虚拟环境管理
                库名称
                    virtualenvwrapper-win
                    基于virtualenv,开发的一个工具包
                功能作用
                    可以将之前分散在各个路径下的虚拟环境,集中到统一的路径下进行管理
                    方便各个虚拟环境之间的切换
                    更加方便的去使用virtualenv
                文档说明
                    https://pypi.python.org/pypi/virtualenvwrapper-win
    
    2).使用说明
                    创建虚拟环境
                        语法
                            mkvirtualenv 虚拟环境名称
                        作用效果
                            会创建在特定的文件夹中
                                windows下,默认在用户目录的Envs文件夹中
                            激活新建的虚拟环境
                    查看所有虚拟环境
                        语法
                            lsvirtualenv
                            workon
                        作用效果
                            列出当下创建的所有虚拟环境
                    切换激活虚拟环境
                        语法
                            workon 虚拟环境名称
                        作用效果
                            激活指定的虚拟环境
                    关闭虚拟环境
                        语法
                            deactivate
                        作用效果
                            关闭当下所在的虚拟环境
                    删除虚拟环境
                        语法
                            rmvirtualenv 虚拟环境名称
                        作用效果
                            删除指定虚拟环境
                                删除对应的文件夹
                            退出对应虚拟环境的激活状态
    
    3).更加基于项目的虚拟环境管理
                库名称
                    Pipenv
                功能作用
                    pip + virtualenv
                    更加基于项目;使得我们更加关注于项目的管理;工具内部封装了以上两个功能
                优势
                    不需要再分别使用pip和virtualenv, 直接使用Pipenv即可
                        会自动的帮你创建虚拟环境,以及安装三方库
                        会自动的记录你项目依赖的所有三方库
                    使用Pipfile和Pipfile.lock取代了requirements.txt
                文档说明
                    https://docs.pipenv.org/
                使用说明
                    第一步:创建虚拟环境
                        命令
                            pipenv --two
                            pipenv --three
                        查看相关信息
                            查看项目位置
                                pipenv --where
                            查看虚拟环境位置
                                pipenv --venv
                            查看解释器信息
                                pipenv --py
                    第二步:激活虚拟环境
                        命令
                            pipenv shell
                        作用效果
                            
                    第三步:该干啥干啥
                        执行代码
                            python3 xxx.py
                                会使用虚拟环境
                        安装包
                            命令
                                pipenv install [三方库名]
                            作用效果
                                1. 检测当前项目对应的虚拟环境是否存在,不存在则创建
                                2. 在虚拟环境中安装指定的三方库
                                    如果没指定,则不安装
                                3. 在项目目录下,通过Pipfile和Pipfile.lock记录当下已经安装的三方库
                                    不存在则创建
                            注意:不要使用pip install
                                虽然在虚拟环境中安装对应的包
                                但是不会更新Pipfile和Pipfile.lock
                        查看包的依赖结构
                            pipenv graph
                        卸载包
                            pipenv install 包名
                    第四步:退出虚拟环境
                        命令
                            exit
                            或者直接关闭shell窗口
                    第五步:删除虚拟环境
                        命令
                            pipenv --rm
                    补充
                        以后上传项目(给别人)应该包含哪些文件?
                            包和模块源码
                            Pipfile和Pipfile.lock
                        别人拿到这些内容后,如何使用?
                            1. 执行pipenv install
                                会自动根据Pipfile创建虚拟环境以及对应的依赖包
                            2. 执行pipenv shell
                                激活虚拟环境
    
    补充
            aconada
    

    相关文章

      网友评论

        本文标题:06-Python-包&模块-虚拟环境

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