以下のエラーが発生。
対処法を教えていただきたいです。
Error code: 403
Message: CGI script is not executable ('/cgi-bin/recommend.py').
Error code explanation: HTTPStatus.FORBIDDEN - Request forbidden -- authorization will not help.
以下もとになるrecommend.pyのコードです。
#!/usr/bin/env python
-- coding: utf-8 --
"""
推薦アルゴリズム構築部
文字化け回避
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
html_body = """
<!DOCTYPE html> <html> </html>"""
import cgi
import csv
import pandas as pd
import pickle
import numpy as np
import os
以前のデータを読み込む
df = pd.read_csv("recommend.csv")
form = cgi.FieldStorage()
userID = form.getvalue("id","processing") #UserIDを取得
始まりの画像
if userID != "processing":
num = "1"
画像のどちらを選んだか。Oなら1,Xなら2
select = form.getvalue("text","00")
if select[0] != "5":
select = form.getvalue("text2","00")
num = select[1:]
select= select[0]
最初は、一番左のカラムにuserID登録
if userID != "processing":
zeros = np.zeros(df.shape[1])
zeros = pd.Series(zeros, index=df.columns, name = df.shape[0])
df = df.append(zeros)
df["userID"][df.shape[0]-1] = userID
画像を選択した状態
else:
df.iloc[[df.shape[0]-1],[int(num)+1]] = select[0]
# 次に移す画像の番号
num = str(int(num) + 1)
dfを保存
df.to_csv("recommend.csv", index= False)
画像の枚数を数える
path = "photos"
l = os.listdir(path)
no_f = 0
for i in l:
item = i.split(".")
if item[1] == "jpg":
no_f +=1
elif item[1] == "JPG":
no_f +=1
if int(num) > no_f - 2:
num = str(no_f-1)
print("Content-Type: text/html\n")
print(html_body.format(num, userID, select))
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。