ichinose9372 / 42-webserv

c++でnginxを作る課題
2 stars 0 forks source link

/python/ and /autoindex/ #82

Closed snemoto-42 closed 8 months ago

snemoto-42 commented 8 months ago

・実行環境によって/python/の結果がブラウザに表示されない (校舎mac:ok/mypc:ng、pythonの実行環境の問題、pythonなのかpython3なのか) ・統一された環境でレビューしてもらうにはdockerが必要か

snemoto-42 commented 8 months ago

import "flask" could not be resolvedの対策 https://dntf.hatenablog.com/entry/2021/08/07/021123

'Python:Select Interpreter'のpathを通す https://it-dxblog.com/vscode-python-venv/

venv仮想環境 https://qiita.com/fiftystorm36/items/b2fd47cf32c7694adc2e

pip freeze https://note.nkmk.me/python-pip-install-requirements/

snemoto-42 commented 8 months ago

venv仮想環境を構築する場合 python3 -m venv venv source venv/bin/activate pip install --upgrade pip pip install flask

レビューのためにmakefileに追加して実行するのが良さそう

snemoto-42 commented 8 months ago

課題

Traceback (most recent call last): File "./docs/autoindex/app.py", line 4, in from flask import Flask, render_template File "/Users/snemoto/42/42-webserv/env/lib/python3.9/site-packages/flask/init.py", line 46 def getattr(name: str) -> t.Any: ^ SyntaxError: invalid syntax

env: python3.9: No such file or directory

0flaskを諦める render_template()の再実装 VM+Docker php/perlなど他言語の活用

1execve()引数の問題? https://www.twilio.com/ja/blog/environment-variables-python-jp

2シバンの問題? (実行可能)/usr/bin/env python (実行不可)/usr/bin/env python3 (実行不可)/usr/bin/env python3.9

3PythonとFlaskのバージョンの問題? (校舎mac)Python 3.9 (latest)Python 3.12 (latest)Flask 3.0.1

=>flaskがインストールされたvenv環境では./docs/autoindex/app.pyが実行できる =>./webserv側の修正が必要、1execve()引数の問題、main(**envp())が必要、そうしたらExecCGIのPYTHONPATHは不要になる

(結論)execve()の引数を修正して、python3が呼び出されるようにした

snemoto-42 commented 8 months ago

TODO ・/autoindex/のgetcwd()を修正、絶対パスを指定して/docs/傘下のファイルを表示 ・autoindex.htmlの{{ path }}を修正 ・flaskで/python/のルーティング

snemoto-42 commented 8 months ago

バグは解消されたのでクローズ