zoukankan      html  css  js  c++  java
  • 使用Virtualenv隔离Python、Ansible不同发行版

    1.virtualenv介绍


    在python开发中,我们可能会遇到一种情况,就是当前的项目依赖的是某一个版本,但是另一个项目依赖的是另一个版本,这样就会造成依赖冲突,而virtualenv就是解决这种情况的,virtualenv通过创建一个虚拟化的python运行环境,将我们所需的依赖安装进去的,不同项目之间相互不干扰,如下所示。
    这里写图片描述

    2.安装virtualenv


    首先要安装必须的依赖,否则后续会报错

     yum install python-setuptools python-setuptools-devel

    安装virtualenv比较简单,无论是在linux系统上还是windows上都可以通过pip来进行安装,如下:pip install virtualenv

    如果安装不成功也可以下载virtualenv源码package,通过执行setup.py来安装virtualenv。同时因为python2和python3的不同,因此也有了两种pip和pip3两种python包安装工具,而两种工具安装的virtualenv也是不相同的,py2安装的virtualenv虚拟化出来的python运行环境是python2的,py3安装的virtualenv默认虚拟化环境则是python3的。

    3.virtualenv运行使用


    3.1 创建虚拟化环境


    使用pycharm来作为本示例的编辑器,选择python2.7工作环境,新建工程virtualenvDemo,在控制台中输入命令:

    virtualenv venv
    

    这时候便会在当前的项目中创建venv文件夹,为当前项目的虚拟python运行环境,如下:

    我本机此时默认的python环境为python2.7,那么此时创建的虚拟环境就是以python2.7创建的虚拟化环境,如果需要选择一个python解释器来创建虚拟化环境,命令则为:

    virtualenv -p /usr/bin/python2.7 venv

    此时还需将当前工程的interpreter改为当前的虚拟环境,要不然会不起作用,这个不再详述。


    3.2 启用


    激活虚拟化环境的命令为:

    source venv/bin/activate

    激活后,在控制台会有一个带有(venv)的标志,如下:

    3.3安装依赖


    在以上完成之后就可以通过命令pip install 来安装python包了,这里安装python包就不需要root权限了,直接就可以安装十分方便。在venv的环境中,使用pip安装的包都不会再是全局性的包,只会在当前的虚拟环境中起作用,避免了污染系统环境。

    3.4 退出当前系统环境


    在控制台中输入命令deactivate后,就会推出当前的venv虚拟化环境。

    (.virtualenv) # deactivate

    # exit

    4.virtualenv其他命令


    virtualenv各种其他命令如下:

    “`
    用法:

    $ virtualenv [OPTIONS] DEST_DIR
    选项:
    –version
    显示当前版本号。
    -h, –help
    显示帮助信息。
    -v, –verbose
    显示详细信息。
    -q, –quiet
    不显示详细信息。
    -p PYTHON_EXE, –python=PYTHON_EXE
    指定所用的python解析器的版本,比如 –python=python2.5 就使用2.5版本的解析器创建新的隔离环境。 默认使用的是当前系统安装(/usr/bin/python)的python解析器
    –clear
    清空非root用户的安装,并重头开始创建隔离环境。
    –no-site-packages
    令隔离环境不能访问系统全局的site-packages目录。
    –system-site-packages
    令隔离环境可以访问系统全局的site-packages目录。
    –unzip-setuptools
    安装时解压Setuptools或Distribute
    –relocatable
    重定位某个已存在的隔离环境。使用该选项将修正脚本并令所有.pth文件使用相当路径。
    –distribute
    使用Distribute代替Setuptools,也可设置环境变量VIRTUALENV_DISTRIBUTE达到同样效要。
    –extra-search-dir=SEARCH_DIRS
    用于查找setuptools/distribute/pip发布包的目录。可以添加任意数量的–extra-search-dir路径。
    –never-download
    禁止从网上下载任何数据。此时,如果在本地搜索发布包失败,virtualenv就会报错。
    –prompt==PROMPT
    定义隔离环境的命令行前缀。
    “`

    5.综上


    • virtualenv就是一个搭建虚拟化的python环境,便于不同的项目在同一台机器上开发运行。

    • virtualenv更多的还是适用于本地开发不同的项目,但是在生产环境中还是使用docker给不同的项目创建不同的容器,各自分开运行为好,不宜放在一个单独的物理机中运行。

    6.安装必要的ansible依赖包

    pip install paramiko PyYAML jinja2

    # cd ansible

    # git submodule update --init lib/ansible/modules/core

    # git submodule update --init lib/ansible/modules/extras

    7. 加载ansible2.1

    Tip: env-setup 是 ansible 为 hacker 准备的一个脚本,用来设置一些ansible所需的环境变量

    # . /home/deploy/.virtualenv/ansible/hacking/env-setup -q

    $ ansible --version

    ansible 2.1.0 (devel 6ddea3e915) last updated 2016/02/16 16:13:32 (GMT +800)
      lib/ansible/modules/core: (detached HEAD 8d126bd877) last updated 2016/02/16 16:19:09 (GMT +800)
      lib/ansible/modules/extras: (detached HEAD f6c5ed987f) last updated 2016/02/16 16:19:40 (GMT +800)
      config file = /etc/ansible/ansible.cfg
      configured module search path = Default w/o overrides
  • 相关阅读:
    CCF CSP 题解
    CCF CSP 2019032 二十四点
    CCF CSP 2018121 小明上学
    CCF CSP 2019092 小明种苹果(续)
    CCF CSP 2019091 小明种苹果
    CCF CSP 2019121 报数
    CCF CSP 2019031 小中大
    CCF CSP 2020061 线性分类器
    CCF CSP 2020062 稀疏向量
    利用国家气象局的webservice查询天气预报(转载)
  • 原文地址:https://www.cnblogs.com/fungitive/p/9136147.html
Copyright © 2011-2022 走看看