正在提供的文件是陈旧/缓存的; Python为fcgi + web.py + nginx

时间:2013-02-04 01:28:22

标签: python ubuntu nginx web.py fastcgi

我正在使用Nginx和fcgi,python和web.py在ubuntu中提供文件。我的index.py内容是:

app = web.application(urls, globals(), True)
if __name__ == "__main__":
    web.wsgi.runwsgi = lambda func, addr=None: web.wsgi.runfcgi(func, addr)
    app.run()

我正在推出:

spawn-fcgi -n -d /usr/share/nginx/www -f ~/Projects/index.py -a 127.0.0.1 -p 9002

哪个工作正常,除了我对源文件(index.py或它包含的任何类)进行更改后,永远不会加载这些新文件。我必须停止spawn-fcgi并重新启动它以查看任何更改。这使得开发非常麻烦。

此外,我已经关闭了python .pyc / cache文件的生成。

TIA

2 个答案:

答案 0 :(得分:1)

这很可能是出于设计。

您通常不希望在生产环境中重新加载模块(性能,并且由于Python中的模块重新加载并不总是具有预期的效果)。

对于开发,使用一些其他更简单的服务器模型(例如,Django为此目的提供了自己的开发服务器,我没有使用webpy,但它似乎具有与tutorial相同的功能)。仅在部署webapp时使用nginx,而不是在开发环境中使用。

在正常情况下,您不必担心.pyc文件(例外是在某些有问题的NFS设置中,或者.pyc文件是由错误的用户使用错误的权限创建的。)

答案 1 :(得分:1)

我使用nginx + uwsgi或apache + mod_wsgi部署我的应用程序,如果我touch code.py,我们都会重新加载应用程序。但是我在开发时从集成服务器运行应用程序。

如果在开发模式下运行具有自己的重新加载器的web.py集成服务器不是一个选项,那么唯一的选择是使用重新加载功能编写自己的调度程序。