zoukankan      html  css  js  c++  java
  • 一篇文章帮你解决python的包管理

    写python代码的人都知道,一个项目写下下来,不可避免的都需要使用很多第三方包,通常我们都是通过pip install ,然而当我们需要上线的时候问题来了,如果中间你自己不记得自己安装了多少个包,这个时候你就面临着需要导出包名字,这个时候你可能想到了 pip freeze > requirements.txt,但是实际开发中你可能会开发很多个项目,每个项目可能都是pip安装了一堆包,如果每次都是这样,导出的包会越来越多。并且多个项目之间并不能很好的隔离,并且可能你每个项目中用的python环境不同,包的版本不同,而这在后期可能造成很多不可预知的麻烦。这个时候我们就需要用到python的虚拟环境啦
     

    虚拟环境virtualenv

    不同的项目使用不同版本的某些包,可能某些原因使用旧版本的包还不能升级,所以这个时候我们可以通过虚拟环境来解决这个问题。我们需要安装一个特殊的包:virtualenv
     
    安装:pip install virtualenv,如下图所示表示安装成功

    创建虚拟环境

    命令:virtualenv venv

    执行这个命令会默认在当前目录创建一个虚拟环境venv 目录,这里包含了Python可执行文件,常用的标准库,激活virtualenv环境脚本的目录,激活virtualenv环境的脚本在下图目录中的Scripts目录中的activate,执行这个程序就可以激活

    当我们激活虚拟环境后,会出现如下图所示,标注的部分就表示你已经进入了虚拟环境。如果想要退出虚拟环境需要执行deactivate

    在虚拟环境中你的环境和你本机的python环境是隔离的如果你在虚拟环境中通过pip安装包只会安装在你这个虚拟环境目录下,并不会安装到你的电脑

    python环境下

    但是如果仅仅是这个模块好像是没那么方便,这里我们需要再安装一个模块virtualenvwrapper,其实这个是对virtualenv模块的扩展,让你更加方便的管理和创建虚拟环境

    virtualenvwrapper模块

    virtualenvwrapper是对virtualenv的功能扩展,它可以帮我们:

    管理全部的虚拟环境

    更加方便的创建,删除和拷贝虚拟环境

    安装:pip install virtualenvwrapper

    为了方便管理需要在环境变量里添加一个环境变量,这里我创建一个目录,用于存放所有的虚拟环境,我这里用的是E:venv_project目录

     安装完成virtualenvwrapper 之后,我们就有了几个命令可以用:

    mkvirtualenv :创建虚拟环境

    lsvirtualenv:列出全部的虚拟环境

    showvirtualenv:列出单个虚拟机环境的信息

    rmvirtualenv:删除一个虚拟环境

    cpvirtualenv:拷贝一个虚拟环境

    allvirtualenv:对当前虚拟环境执行统一的命令

    cdvirtualenv:可以直接切换到虚拟环境的子目录里

    cdsitepackages:和cdvirtualenv同理,切换到虚拟环境的site-packages目录下

    lssitepackages:列出site-packages目录下的目录

    上述命令的简单实用例子:

    因为上面已经提前添加了WORKON_HOME环境变量,所以我们通过mkvirtualenv命令创建的虚拟环境都会创建到这个目录下,

    这里还有一个命令:workon命令可以列出所有的虚拟环境

    我们通过mkvirtualenv创建虚拟环境,并通过通过workon命令可以查看我们创建的所有虚拟机环境,以及通过workon命令在不同的虚拟环境中迅速切换

    这样虚拟环境就安装完成了

    总结

    通过上面的虚拟环境,我们每个项目都可以运行在独立的python环境中,也不用担心不同项目之间python包的干扰,还能保证你本地测试环境的代码完全和上线时是一致的

    再也不用因为在测试环境好好地,放到线上各种奇怪的问题 ,如下图上线之后很多程序员发现bug的感觉:

     我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。

  • 相关阅读:
    Python字符串
    MySQL触发器
    MySQL 1418报错解决办法
    数据库下载
    补码与反码
    二、八、十六进制之间的转换
    this 指向
    作用域 var 词法分析 arguments
    事件绑定的3种方式
    清浮动方法小结
  • 原文地址:https://www.cnblogs.com/zhaof/p/8358902.html
Copyright © 2011-2022 走看看