私はApache、Django、およびwsgiを実行しています。また、 SASという別のソフトウェアを使用して統計分析を行っています。コンテキストを提供するだけです。私の最終的な目標は、クライアントが django で記述されたフォームで送信すると、適切な sas スクリプトが(python wsgi スクリプトを介して) 呼び出され、サーバーで計算を実行し、クライアントを出力ページにリダイレクトすることです。
という基本的なスクリプトがありtest5.py
ます。次のようになります。
import os
import subprocess
def application(environ, start_response):
status = '200 OK'
output = 'Running External Program!'
f = open("C:\Documents and Settings\eric\Desktop\out.txt", 'a')
f.write('hi')
f.close()
#os.system(r'start "C:\Program Files\SAS92\SASFoundation\9.2\sas.exe"')
#subprocess.call([r'C:\Program Files\SAS92\SASFoundation\9.2\sas.exe'])
#os.startfile(r'C:\Program Files\SAS92\SASFoundation\9.2\sas.exe')
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
#start_response('301 Redirect', [('Location', 'http://myserver/reports'),])
start_response(status, response_headers)
return [output]
したがって、out.txt
ファイルが作成さhi
れ、ファイルに書き込まれます。それはかなりクールです。sas.exe
最初の 3 つのコメント行は、サーバー上に存在するこの同じスクリプトも呼び出すように 3 回試みたものです。私は.exe
今、何かを動かそうとしているだけなので、ペイントやワードパッドを呼んでも問題ありません。wsgi
ただし、これらの行はコンテキストで実行されないようです。Python コマンド ラインをロード.exes
するだけで、問題なく実行できます。また、最後のコメントはリダイレクトで適切に機能しているようです。実行可能ファイルを追加するために apache を構成する必要があるかどうかはわかりません。用語の使い方が間違っていたらご容赦ください。私はまだこれらすべてにまったく慣れていません。
ありがとう
こんにちはパウロ、
私はあなたの最後のコメントを調べようとしていました。正確に何を探しているのか、またはどのように探すのかについて、少し混乱しています。ここに私が集めたいくつかの情報があります。ところで、私は Windows XP で実行し、Apache 2.2 を使用しています。
私のApacheは、regeditで変数ServerRootがHKEY_LOCAL_MACHINE(http://httpd.apache.org/docs/2.2/platform/windows.html)の下にあるため、すべてのユーザーにインストールされます。また、SAS はすべてのユーザーの下にインストールされていると思います。同僚にログインを使用してサインインしてもらい、これをテストしましたが、まだアクセスできました。それが十分なテストであるかどうかはわかりません。
wsgi を実行したときに得られるログは次のとおりです。プロセスが空であることが重要かどうかはわかりません。
[Mon Aug 20 10:33:17 2012] [info] [client 10.60.8.71] mod_wsgi (pid=5980, process='', application='..com|/test5'): WSGI スクリプトのリロード 'C:/サイト/cprm/pyscripts/test5.wsgi'.
また、以前に投稿したコメントに投稿したリンクから .bat トリックを試しましたが、役に立ちませんでした。「hi」をエコーするだけの簡単なバッチ ファイルを作成し、wsgi スクリプトが存在するディレクトリと同じディレクトリに配置しました。そこにアクセスの問題はないと思いますが、間違っているかもしれません。また、テストのためにサブプロセスを使用して単純な python スクリプトを呼び出してみました。また、何も起こりませんでした。
また、お見せするために、私の httpd.conf ファイルは次のようになります。
AllowOverride なし オプション なし 順序を許可、拒否 すべてから許可
WSGIScriptAlias /test1 "C:/sites/cprm/pyscripts/test1.wsgi" WSGIScriptAlias /test2 "C:/sites/cprm/pyscripts/test2.py" WSGIScriptAlias /test3 C:/sites/cprm/pyscripts/test3.py WSGIScriptAlias /test4 "C:/sites/cprm/pyscripts/test4.py" WSGIScriptAlias /test5 "C:/sites/cprm/pyscripts/test5.wsgi" WSGIScriptAlias / "C:/sites/cprm/wsgi.py"
この情報は役に立ちますか? また、特定の環境変数などを探していますか?
再度、感謝します