0

我正在使用 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

4

2 回答 2

1

这很可能是设计使然。

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

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

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

于 2013-02-04T02:03:18.303 回答
1

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

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

于 2013-02-04T07:01:31.337 回答