zoukankan      html  css  js  c++  java
  • 项目配置 Linux Python

    项目配置 Linux Python

    标签(空格分隔): Linux Python env IP 项目 db2


    已配置项目

    lqr
    maftp
    lirp

    配置 基础文件

    IP统一配置

    TODO:测试可用,无异常,代码不够简洁
    TP配置流程: root --> 用户 --> 前端/后端
    - 1.配置全局root变量base_ip

    # 设置全局变量 /etc/profile
    vim /etc/profile   末尾添加需要设为全局的变量例如:
    export base_ip=172.10.21.104
    • 2.配置用户全局变量
      os.environ[“base_ip”] # 读取变量
    # root用户或者其他用户(其他用户需要重新切用户)获取变量
    import os
    print os.environ["base_ip"]  # 读取变量
    # 也可以在用户.base_profile 中直接base_ip=xxx.xxx.xxx.xxx 设用户全局变量
    • 3.前端IP自动配置
    # 前台IP在 /assets/scripts/application.js中
    # 设定IP如下
    //base_url = 'http://172.10.21.118:3061';
    //rpt_base_url = 'http://172.10.21.118:3062';
    base_url = 'http://'+ window.location.hostname +':3061';
    rpt_base_url = 'http://'+ window.location.hostname +':3062';
    # window.location 获取主机url的参数
    • 4.后端serverIP自动配置
    # database/sqlal.py
    import os
    URL ='ibm_db_sa://lqr:qwe123@' + os.environ["base_ip"] + ':50000/dwdb'
    # 同js,但是不能使用window.location,直接赋值
      1. SqsIP配置
    # 由于URL在config_report.json文件中,不知道怎么传递全局变量到json文件中。所以在调用这个json文件的config.py中处理
    # 流程: config.py (ip_replace.py --> 替换ip_config_report.json中指定字符串为base_ip变量 -->得到config_report.json --> config.py处理这个json) 
    # ip_config_report.json文件和config_report.json一样,仅仅只是IP部分变成了被替代字符串,在每次运行时,替换字符串为IP变量,输出文件到config_report.json。即可

    file:ip_replace.py

    #!/usr/bin/python
    # -*- coding=UTF-8 -*-
    import sys
    import os
    len_argv=len(sys.argv)
    #print '传参数量',len_argv-1
    
    if   len_argv <  4:
        print '参数错误:python '+sys.argv[0]+' 需要编辑的文件 被替换的字符串 提成成的字符串 [另存成的文件]'
    
    elif len_argv >  5:
        print '参数错误:python '+sys.argv[0]+' 需要编辑的文件 被替换的字符串 提成成的字符串 [另存成的文件]'
    
    else:
        if not os.path.isfile(sys.argv[1]):
            print '文件不存在'
            sys.exit()
        s_file  = file(sys.argv[1],'r+')
        old_str = sys.argv[2]
        new_str = sys.argv[3]
        d_file  = file(sys.argv[1]+'.tmp','w')
        for line in s_file.readlines():
            d_file.writelines(line.replace(old_str,new_str))
        s_file.close()
        d_file.close()
    
        if len_argv == 4:
            os.rename(sys.argv[1]+'.tmp',sys.argv[1])
        else:
            os.rename(sys.argv[1]+'.tmp',sys.argv[4])
    # http://www.cnblogs.com/www1707/p/5858212.html

    config.py中部分代码

    import os
    base_ip=os.environ["base_ip"]
    os.system("""python ip_replace.py {0} {1} {2} {3} """.format('ip_config_report.json','$base_ip',base_ip,'config_report.json'))

    ip_config_report.json中部分代码

        "DB_URI":"ibm_db_sa://lqr:qwe123@$base_ip:50000/dwdb",
        "THS_URI":"ibm_db_sa://xc_find:qwe123@$base_ip:50000/dwdb",
        "DWDB_URI":"ibm_db_sa://xcdw:qwe123@$base_ip:50000/dwdb",
    

    db2配置

    db2开机自启

    root用户下 .base_profile中
    su - db2inst1 -lc db2start # db2 autostart
    # 不能使用su - db2inst1 然后db2start,因为切换用户后,之后的命令都无法执行需要 -lc指定

    在启动文件中加入命令 su -u db2inst1 -c db2start

    实例用户下,执行db2fm -f on

    ERROR

    from openpyxl.cell import column_index_from_string
    ImportError: cannot import name column_index_from_string 
    解决方法:openpyxl 安装不完全
    用openpyxl-2.3.3.tar.gz安装,而不是联网或者whl安装
  • 相关阅读:
    dict
    list & tuple
    int & bool & string
    关于gcc内置的原子操作函数
    关于quicklz压缩算法在游戏中的应用
    为mingw生成mysql的客户端库文件
    linux下core生成与调试
    linux下GCC编译动态库切记加 -fPIC
    一则gvim命令
    WIN系统下网络莫名其妙怪异的无法可用时的处理方式
  • 原文地址:https://www.cnblogs.com/superscfan/p/12257040.html
Copyright © 2011-2022 走看看