前提・実現したいこと
IISのCGIを有効にして、venvに格納したpythonの簡単なスクリプトをブラウザ上のボタンクリックで実行できるようにしたいです。
発生している問題・エラーメッセージ
スクリプトにCV2およびnumpyを利用するのでvenvをactivateし、
venv\Lib\site-packages にモジュールをインストールしたのですが、ブラウザからのCGI実行時にエラーになってしまいます。
502 - Web サーバーがゲートウェイまたはプロキシ サーバーとして動作しているときに、無効な応答を受信しました。
該当のソースコード
python
1#!/usr/bin/python 2 3import cgi 4import os 5import cv2 6import numpy as np 7 8form = cgi.FieldStorage() 9 10def move(): 11 store = form.getfirst('E1') 12 salesdate = form.getfirst('E2').replace('-','') 13 fileitem = form.getvalue('file') 14 newpath = os.path.join('パス' + '.jpg' ) 15 16 17 arr = np.asarray(bytearray(fileitem), dtype=np.uint8) 18 d_img = cv2.imdecode(arr, -1) 19 cv2.imwrite(newpath, d_img) 20 21 print("保存しました") 22 23 return 24 25print ('Content-type: text/html') 26print ('') 27print ('<html><head><title>完了</title></head>') 28print ('<body>') 29print(move()) 30print ('</body></html>')
試したこと
- 不思議に思ってオリジナルのpythonインストール先、C:\Program Files\Python39\Lib\site-packages に上記2モジュールを置いたところブラウザからエラーなくスクリプト実行できました
- コマンドプロンプトからvenvをactivateしてブラウザを経由せずに実行する際も問題なくスクリプトは動きます
- IISの当該スクリプトを実行するwebsiteのハンドラーマッピングは"C:\Program Files\Python39\python.exe" %s%s
と\venv\Scripts\python.exe 両方試しました
補足情報(FW/ツールのバージョンなど)
- Python 3.9.6
- WindowsServer2019 Standard
- IIS 10.0.0.0

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。