zoukankan      html  css  js  c++  java
  • python设置环境变量

    原文链接:https://www.cnblogs.com/luocodes/p/10690246.html

    设置临时环境变量

    import os
    
    # 设置环境变量
    os.environ['WORKON_HOME']="value"
    # 获取环境变量方法1
    os.environ.get('WORKON_HOME')
    #获取环境变量方法2(推荐使用这个方法)
    os.getenv('path')
    # 删除环境变量
    del os.environ['WORKON_HOME']
    
    其他key值:
    os.environ['HOMEPATH']:当前用户主目录。
    os.environ['TEMP']:临时目录路径。
    os.environ['PATHEXT']:可执行文件。
    os.environ['SYSTEMROOT']:系统主目录。
    os.environ['LOGONSERVER']:机器名。
    os.environ['PROMPT']:设置提示符。

    永久环境变量

    因为python没办法直接设置永久的环境变量,所以要借助命令行来实现

    import os
    path=r"E:env"
    command =r"setx WORK1 %s /m"%path
    os.system(command)
    /m代表系统变量。
    不加/m为用户变量

    实战

    前提:我想通过启动程序传参来控制我的数据库环境

    解决:

    1.在一个配置文件里面写多个环境的配置,定义一个配置文件testcase.conf

    [stage_sqlserver]
    host = XXX
    db = XXX
    user = XXX
    password = XXX
    charset = utf8
    
    [prod_sqlserver]
    host = XXX
    db = XXX
    user = XXX
    password = XXX
    charset = utf8

    2、在main.py函数中设置全局变量

    if __name__ == '__main__':
    
        test_env = sys.argv[1]
        env = ["stage", "pre", "prod"]
        if test_env not in env:
            raise Exception("环境错误" + test_env)
    
        os.environ["test_env"] = test_env

    3、把数据库封装成一个对象HandleMssql

        def __init__(self):
            env_mssql = os.getenv('test_env') + '_sqlserver'
            self.conn = pymssql.connect(do_config.get_data(env_mssql, 'host'),
                                        do_config.get_data(env_mssql, 'user'),
                                        do_config.get_data(env_mssql, 'password'),
                                        do_config.get_data(env_mssql, 'db'))
            # self.conn = pymssql.connect('Dev1.tutorabc.com', 'BdIms3Acct', 'n6Sp4phAWUp_', 'muchnewdb')
            self.cursor = self.conn.cursor()

    4、在控制台输入 python main.py stage

    5、在这里要讲下sys.argv

    sys.argv[]就是从程序外部获取参数的桥梁,得到的一个列表,列表的第一个酸雨是程序本身,其次才依次是外部给与的参数。

    main.py
    if
    __name__ == '__main__': result = sys.argv # 得到的是程序本身+外部输入参数的列表 for r in result: print(r)

    在命令行输入如下信息

     注意参数之间是用空格来区别的,如下

  • 相关阅读:
    Uva10305(dfs)
    Uva572
    Uva122
    Uva679
    Uva136
    Uva489
    Uva133
    Uva1339
    Uva1588
    《世纪的哭泣》读后感 读书笔记
  • 原文地址:https://www.cnblogs.com/ella-li/p/11847735.html
Copyright © 2011-2022 走看看