美文网首页开发杂谈
python环境准备(二)

python环境准备(二)

作者: 叩丁狼教育 | 来源:发表于2018-07-23 12:16 被阅读0次

    作者:黎智煊 叩丁狼高级讲师。原创文章,转载请注明出处。

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

    通常,python有一下几种包管理方式。

    1. virtualenv 就是用来为一个应用创建一套“隔离”的Python运行环境。

    • 首先我们安装它,以下都是基于ubuntu的命令,其他平台也是类似的:
    pip3 install virtualenv
    

    然后,假定我们要开发一个新的项目,需要一套独立的Python运行环境,可以这么做:

    • 第二步,创建目录:
    ubuntu:~ michael$ mkdir myproject
    ubuntu:~ michael$ cd myproject/
    ubuntu:myproject michael$
    
    • 第三步,创建一个独立的Python运行环境,命名为venv:
    ubuntu:myproject michael$ virtualenv --no-site-packages venv
    Using base prefix '/usr/local/.../Python.framework/Versions/3.4'
    New python executable in venv/bin/python3.4
    Also creating executable in venv/bin/python
    Installing setuptools, pip, wheel...done.
    

    命令virtualenv就可以创建一个独立的Python运行环境,我们还加上了参数--no-site-packages,这样,已经安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的Python运行环境。
    新建的Python环境被放到当前目录下的venv目录。有了venv这个Python环境,可以用source进入该环境:

    ubuntu:myproject michael$ source venv/bin/activate
    (venv)Mac:myproject michael$
    

    注意到命令提示符变了,有个(venv)前缀,表示当前环境是一个名为venv的Python环境。

    下面正常安装各种第三方包,并运行python命令:

    (venv)ubuntu:myproject michael$ pip install jinja2
    ...
    Successfully installed jinja2-2.7.3 markupsafe-0.23
    (venv)ubuntu:myproject michael$ python myapp.py
    ...
    

    在venv环境下,用pip安装的包都被安装到venv这个环境下,系统Python环境不受任何影响。也就是说,venv环境是专门针对myproject这个应用创建的。

    退出当前的venv环境,使用deactivate命令:

    (venv)ubuntu:myproject michael$ deactivate 
    ubuntu:myproject michael$
    

    此时就回到了正常的环境,现在pip或python均是在系统Python环境下执行。

    完全可以针对每个应用创建独立的Python运行环境,这样就可以对每个应用的Python环境进行隔离。

    virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。

    1. 第二种是使用anaconda这一种安装方式稍微就麻烦一点。

    • 官网下载地址是这个。https://www.anaconda.com/download/
      这里稍微介绍一下,和python一样,anaconda的python包管理也是基于三大平台的,这里演示也是基于linux,然后我们所有操作都是基于python3,所以主要对应好的你系统来下载32位和64位的软件包就可以了。
      image.png

    但是下载还是有别的建议,可能考虑到官网的速度可能比较慢,这里建议使用清华源的网址来anaconda。
    https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
    也是找到对应的平台来下载,比如说这个
    Anaconda3-5.2.0-Linux-x86_64.sh
    找的时候,一定是找前缀为Anaconda3,然后中间的就是版本号,然后就是系统平台,然后是位数,一般都是x86_64,意思是64位的系统。

    image.png

    安装

    安装较为简单,这里参考官方文档:https://docs.continuum.io/anaconda/install/linux.html
    在文件目录下执行:

    bash Anaconda3-4.2.0-Linux-x86_64.sh
    

    根据提示输入回车


    image.png
    image.png

    阅读完注册信息后,这里输入“yes”


    image.png

    回车即可进行安装



    image.png

    这里输入“yes”选择加入环境变量


    image.png

    所以说,基本上都是yes或者按回车就可以了。

    然后给anaconda添加国内源,有助于更快下载,命令是:

    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
    conda config --set show_channel_urls yes
    

    创建环境

    刚接触 conda,安装了 Anaconda3,想用 conda create 命令创建一个只含标准模块和几个必需第三方模块(如 pip、wheel)的 Python3.6 环境。
    创建一个新的python3.6的环境,别称我们叫test,使用命令:

    conda create -n test python=3.6
    

    然后回车选择yes就可以了。

    激活刚刚创建的python3.6,又名test环境

    source activate test
    

    取消环境

    source deactivate test
    
    WechatIMG9.jpeg

    相关文章

      网友评论

        本文标题:python环境准备(二)

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