在不同的python模块中使用全局变量

时间:2016-02-16 16:10:50

标签: python global-variables fabric python-module

我正在使用每个应用的不同模块来管理应用管理。 我有一个配置文件,它具有一般属性,包括每个应用程序的凭据。以及为每个应用程序定义功能的单独模块(使用蓝图)。

config.py

user_app1       = username1
password_app1   = password1
user_app2       = username2
password_app2   = password2

app1.py

import config
env.shell       = '/bin/ksh'
env.user        = config.user_app1
env.password    = config.password_app1
execute(stopService)

app2.py

import config
env.shell       = '/bin/ksh'
env.user        = config.user_app2
env.password    = config.password_app2
execute(stopService)

main.py

import config
from app1 import app1_api
from app2 import app2_api

app = Flask(__name__)
app.register_blueprint(app1_api, url_prefix='/app1')
app.register_blueprint(app2_api, url_prefix='/app2')

@app.route('/app1')
def app1():
 return render_template('app1.html')

@app.route('/app2')
def app2():
 return render_template('app2.html')

if __name__ == '__main__':
 app.run(host='0.0.0.0', port=int("80"))

当我从main.py运行我的Flask应用程序并为app2调用Fabric执行函数时,它似乎选择了app1的用户名和密码。 我做错了什么?

1 个答案:

答案 0 :(得分:0)

问题是以下变量初始化代码永远不会被执行:

env.shell       = '/bin/ksh'
env.user        = config.user_app2
env.password    = config.password_app2

创建一个具有上述行并在任何其他函数(如execute()之前运行该函数)的init函数。