python环境准备(二)

接着上一篇,写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

 

猜你喜欢

转载自blog.csdn.net/wolfcode_cn/article/details/81238556
今日推荐