Apache + Flask + mod_wsgi+阿里云 更改 python 代码后不能立即生效

2015-04-21 21:37:47 +08:00
 lixia625

看上去像是某个地方缓存了代码?
重启apache也没用,重启服务器后才行。
第一次部署网站,求教。

5017 次点击
所在节点    Flask
10 条回复
lixia625
2015-04-21 21:57:24 +08:00
额,貌似是apache reload 和 restart的问题?
firldlove
2015-04-21 22:03:51 +08:00
对apache不太熟,但一般来说应该重启WSGI。WSGI运行python程序,WSGI是server,然后Apache只是反代了一下。所以重启Apache不会有用。
bravecarrot
2015-04-21 23:45:15 +08:00
我重启apache就好使呀。
你改的是什么代码,如果是forms,那你要把变量放在init里才行
Kilerd
2015-04-21 23:57:48 +08:00
用 nginx 吧, 用了WSGI 运行 的话,apache 只是一个端口反代,用个轻量级的好一点,Flask 里面 开启了debug模式了吗
app.run(debug = True)
facat
2015-04-21 23:58:12 +08:00
用uwsgi的时候是要重启uwsgi,应该和你的mod_wsgi差不多
elvis_w
2015-04-22 15:04:42 +08:00
lixia625
2015-04-22 19:38:26 +08:00
@elvis_w 目测正解
laoyuan
2015-07-11 15:50:44 +08:00
修改wsgi 文件,Apache 才会自动reload,所以我的wsgi 文件是这样的(入下)。就是说我就没有app.py 了,每回都修改这个wsgi 文件!

```
import sys
path = '/usr/www/flask'
if path not in sys.path:
sys.path.append(path)

from flask import Flask
app = Flask(__name__)
application = app

@app.route('/')
def hello_world():
return 'Hello World.'

if __name__ == '__main__':
app.run(debug = True)
```
laoyuan
2015-07-11 15:58:48 +08:00
我直接把文件名命名为wsgi.py
WSGIScriptAlias / /usr/www/flask/wsgi.py
laoyuan
2015-07-11 17:47:21 +08:00
升级一点:
import sys, os
c_path = os.path.abspath(os.path.dirname(__file__))
if c_path not in sys.path:
sys.path.append(c_path)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/185321

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX