質問編集履歴

2

題名を変更

2020/05/10 05:51

投稿

ukinko
ukinko

スコア12

test CHANGED
@@ -1 +1 @@
1
- python3+bottle+cgiで生じた「KeyError: 'REQUEST_METHOD'」を解決したい
1
+ python3+bottle+cgiで生じた500エラーを解決したい
test CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
 
4
4
 
5
- 「KeyError: 'REQUEST_METHOD'」を解決したい
6
-
7
5
  Xserverにてpython3+bottle+cgiのwebアプリケーションを動かしたい
8
6
 
9
7
 
@@ -198,7 +196,7 @@
198
196
 
199
197
 
200
198
 
201
- **bottleのインスタンス生成で躓いていそうなことは判明**
199
+ **bottleのインスタンス生成で躓いていそう**
202
200
 
203
201
 
204
202
 

1

試したことを追加

2020/05/10 05:50

投稿

ukinko
ukinko

スコア12

test CHANGED
File without changes
test CHANGED
@@ -56,8 +56,6 @@
56
56
 
57
57
 
58
58
 
59
-
60
-
61
59
  ### 該当のソースコード
62
60
 
63
61
 
@@ -204,7 +202,7 @@
204
202
 
205
203
 
206
204
 
207
- #### environ['REQUEST_METHOD']を正しく渡す(現在進行形で調査中
205
+ #### environ['REQUEST_METHOD']を正しく渡す(挫折
208
206
 
209
207
  environ['REQUEST_METHOD']がどこでセットされるかを確認し、正しく値を渡すように修正
210
208
 
@@ -222,11 +220,127 @@
222
220
 
223
221
  ```
224
222
 
225
- こいつがどこから呼ばれているか不明だが、ここで渡されるenvirionにREQUEST_METHODのキーがないと見てよさそうだ
223
+ __call__に渡されるenvirionにREQUEST_METHODのキーがないと見てよさそうだ
224
+
225
+
226
+
226
-
227
+ だが、__call__がどこでどのように呼ばれているのか、よく分からなかった
228
+
229
+
230
+
227
-
231
+ #### main.pyの中身を書き換えてみる
232
+
228
-
233
+ ```python
234
+
235
+ #!~/usr/bin/python3.6
236
+
237
+ import bottle
238
+
239
+
240
+
241
+ # 省略
242
+
243
+
244
+
229
- こいつがどこから呼ばれるのか調査中(2020/05/05 17:00現在)
245
+ @app.route('/')
246
+
247
+ ```
248
+
249
+ index()を削ってみる
250
+
251
+ すると、ブラウザのエラーが404エラーに変わり、「Not found: '/'」と出力される
252
+
253
+
254
+
255
+ もう少し書き換えてみる
256
+
257
+ index()の返り値を変更
258
+
259
+
260
+
261
+ ```python
262
+
263
+ #!~/usr/bin/python3.6
264
+
265
+
266
+
267
+ # 省略
268
+
269
+
270
+
271
+ @app.route('/')
272
+
273
+ def index():
274
+
275
+ # return bottle.jinja2_template('index.tpl', current_page='philosophy')
276
+
277
+ return 'OK
278
+
279
+ ```
280
+
281
+ ブラウザに「OK」と出力される
282
+
283
+
284
+
285
+ index.cgiを直接実行した際、bottleのインスタンス生成で躓いてると推測したが、
286
+
287
+ ブラウザからアクセスする際は、そこはどうもうまく動いている?
288
+
289
+
290
+
291
+ bottle.jinja2_template()が動いていないと思われる
292
+
293
+
294
+
295
+ **bottle.pyはそのファイルひとつだけを配置しており、bottle.pyでimportしているjinja2のモジュールがない**
296
+
297
+
298
+
299
+ #### pip3でモジュールをインストール
300
+
301
+ jinja2を入れるにあたり、現在、pubulic_html/rexia/にbottle.pyを直接置いているが、pipで管理するように変更
302
+
303
+
304
+
305
+ Xserverに元々入っていたpip3でbottleをインストールし、pubulic_html/rexia/bottle.pyを削除
306
+
307
+ ```
308
+
309
+ [xs186537@sv10203 rexia]$ pip3 install bottle
310
+
311
+ Collecting bottle
312
+
313
+ Using cached bottle-0.12.18-py3-none-any.whl (89 kB)
314
+
315
+ Installing collected packages: bottle
316
+
317
+ Successfully installed bottle-0.12.18
318
+
319
+ [xs186537@sv10203 rexia]$ python3.6 index.cgi
320
+
321
+ Traceback (most recent call last):
322
+
323
+ File "index.cgi", line 2, in <module>
324
+
325
+ from main import app
326
+
327
+ File "/home/xs186537/xs186537.xsrv.jp/public_html/rexia/main.py", line 2, in <module>
328
+
329
+ import bottle
330
+
331
+ ModuleNotFoundError: No module named 'bottle'
332
+
333
+ [xs186537@sv10203 rexia]$ pip3 freeze
334
+
335
+ bottle==0.12.18
336
+
337
+ ```
338
+
339
+
340
+
341
+ pip3で入れたものが、/usr/bin/python3.6、index.cgiで参照できない???
342
+
343
+
230
344
 
231
345
 
232
346