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

nginx+uwsgiまたはapache+mod_wsgiを使用してアプリをデプロイします。どちらも、アプリをリロードしtouch code.pyます。しかし、開発時には統合サーバーからアプリを実行します。

独自のリローダーを備えた開発モードでweb.py統合サーバーを実行するオプションがない場合、唯一のオプションは、リロード機能を備えた独自のディスパッチャーを作成することです。

于 2013-02-04T07:01:31.337 に答える
1

これはおそらく設計によるものです。

通常、本番環境でモジュールをリロードすることは望ましくありません(パフォーマンス、およびPythonでのモジュールのリロードが必ずしも意図した効果をもたらすとは限らないため)。

開発には、他のより単純なサーバーモデルを使用します(たとえば、Djangoはこの正確な目的のために独自の開発サーバーを提供します。私はwebpyを使用していませんが、チュートリアルによると同じ機能を持っているようです)。nginxは、開発環境ではなく、Webアプリをデプロイする場合にのみ使用してください。

通常の状況では、.pycファイルについて気にする必要はありません(例外は、問題のあるNFSセットアップにある場合、または.pycファイルが間違ったユーザーによって間違った権限で作成された場合)。

于 2013-02-04T02:03:18.303 に答える