8

シンプルな Python の「hello world」Web ページ スクリプトを Windows Vista/Apache で実行したいのですが、別の壁にぶつかりました。WAMPを使用しています。インストールmod_pythonしてモジュールが表示されますが、たとえば http.conf で何をすべきかよくわかりません (AddHandler mod_python .py のようなものは、ファイルが見つからないか、禁止されているか、またはモジュールに移動しますhttp://localhost/myfolder/index.pyにアクセスするときにエラーが見つかりません)。私は仕事に取り掛かることができますmod_python.publisherが、これが「欲しい」/これが必要ですか?

誰でも助けることができますか?

ありがとう!

4

3 に答える 3

25

から離れてmod_pythonください。よくある誤解を招く考えの 1 つは、のmod_pythonようなものmod_phpですが、python の場合です。そうではありません。Wsgiは、 PEP 333で定義された Python Web アプリケーションを実行するための標準です。mod_wsgi代わりに使用してください。

または、サーバーを備えた Web フレームワークを使用します。Cherrypyのものは特に良いです。スタンドアロンと を介してアプリケーションを実行できますmod_wsgi

cherrypy を使用した Hello World アプリケーションの例:

import cherrypy

class HelloWorld(object):
    def index(self):
        return "Hello World!"
    index.exposed = True

application = HelloWorld()
if __name__ == '__main__':
    cherrypy.engine.start()
    cherrypy.engine.block()

とても簡単ですよね?このアプリケーションを Python で直接実行すると、Web サーバーが起動します。それに設定mod_wsgiすると、Apache内で実行されます。

于 2009-01-16T11:08:32.760 に答える
4

Web 上で Python コードを実行するのに mod_python は必要ありません。次のリンクの手順に従って、簡単な CGI プログラミングを使用して Python コードを実行できます。http://www.imladris.com/Scripts/PythonForWindows.html

これにより、CGI で Python を有効にするために必要な構成オプションのいくつかが得られるはずです。また、Google 検索でプログラミング方法などに関するその他の情報が大量に得られるはずです。

Mod_python は、もう少し「使いやすい」インターフェイスが必要な場合や、リクエスト自体をより細かく制御したい場合に便利です。これを使用して、Apache サーバーの要求フィルターやその他のものを作成できます。発行者ハンドラーを使用すると、Python を介して Web ページの要求を処理する簡単な方法が得られます。

パブリッシャー ハンドラーは、URL を Python オブジェクト/関数にマッピングすることによって機能します。これは、python ファイルで「foo」という名前の関数を定義できることを意味し、http://localhost/fooへのリクエストはその関数を自動的に呼び出します。詳細はこちら: http://www.modpython.org/live/current/doc-html/hand-pub-alg-trav.html

物事を機能させるためのApache構成に関しては、このようなものがうまく機能するはずです

<Directory /var/www/html/python/>
  SetHandler mod_python
  PythonHandler mod_python.publisher
  PythonDebug On
</Directory>

/var/www/html/ を Web サーバーのルートとして設定し、そこの python/ ディレクトリに index.py というファイルがある場合、http://localhost/python/fooへのリクエストはすべて fooを呼び出す必要があります。 () 関数を index.py に追加するか、存在しない場合は 404 で失敗します。

于 2009-01-16T00:38:14.157 に答える
0

AddHandler mod_python .py

「PythonHandler」を設定しましたか?

最近では、より幅広い展開オプションのために、ネイティブの mod-python インターフェイスの代わりに WSGI を使用することを検討してください。mod-python の WSGI サポート、またはより良いのは mod-wsgi のいずれかです。(例えば wsgiref を介した CGI も問題なく動作し、ゴミのようなパフォーマンスを気にしない開発環境に簡単にセットアップできます。)

于 2009-01-16T01:11:41.297 に答える