Windows / ApacheでPythonをセットアップしますか?
-
19-08-2019 - |
質問
単純なPython <!> quot; hello world <!> quot;を取得したいWindows Vista / Apacheで実行するが、異なる壁にぶつかるWebページスクリプト。 WAMPを使用しています。 mod_python
をインストールしましたが、モジュールが表示されますが、たとえばhttp.conf(AddHandler mod_python .pyのようなものは、 http://localhost/myfolder/index.py )。 mod_python.publisher
を動作させることはできますが、<!> quot; want <!> quot; this /これが必要ですか?
誰でも助けてもらえますか?
ありがとう!
解決
mod_python
から離れます。よくある誤解を招く考えの1つは、mod_php
はmod_wsgi
に似ていますが、Pythonの場合です。それは真実ではありません。 Wsgi は、Python Webアプリケーションを実行するための標準で、 PEP 333 。そのため、代わりに <=> を使用します。
または、サーバーを備えたWebフレームワークを使用します。 Cherrypy は非常に優れています。スタンドアロンと<=>の両方でアプリケーションを実行できます。
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で直接実行すると、ウェブサーバーが起動します。 <=>を設定すると、Apache内で実行されます。
他のヒント
WebでPythonコードを実行するためにmod_pythonは必要ありません。次のリンクの手順に従って、簡単なCGIプログラミングを使用してpythonコードを実行できます。 http://www.imladris.com/Scripts/PythonForWindows.html
これにより、CGIでPythonを有効にするために必要な設定オプションの一部が提供されます。また、Google検索では、プログラミング方法などに関するその他の情報が豊富に提供されます。
Mod_pythonは、もう少し<!> quot; friendly <!> quot;が必要な場合に便利です。インターフェース、またはリクエスト自体のより詳細な制御。これを使用して、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 は、index.pyのfoo()関数を呼び出すか、存在しない場合は404で失敗します。
AddHandler mod_python .py
「PythonHandler」を設定しましたか?
最近では、より広範な展開オプションのために、ネイティブmod-pythonインターフェースの代わりにWSGIの使用を検討してください。 mod-pythonのWSGIサポートを介して、または、おそらくより良い方法として、mod-wsgiを介して。 (例:wsgirefを介したCGIも正常に機能し、ごみのパフォーマンスを気にしない開発環境で簡単にセットアップできます。)