MAMPでPython3をブラウザに表示させます
忘備録として、できるだけ詳しく書いていきます。
##目次
- 環境
- 手順
- サンプルコード
- 実行結果
- エラー時の対処法
###環境
OS :MacOS
環境 :MAMP
言語 :Python 3.6.1
ブラウザ :chrome
テキストエディタ :Atom
###手順
- Apache設定
アプリケーションのfinderでhttpd.confを検索
場所は
/Applications/MAMP/conf/apache/httpd.conf
にありました。
httpd.confにて
を
に変更し、httpd.confを再読み込みするためにMAMP再起動
- 実行権限(パーミッション)の変更
プログラムの実行権限を与えるために、
例えばtest.pyを作成したら
ターミナルで
と打ちましょう。
No such file or directoryと出るなら、
ターミナルでの現在の場所が間違っているので、cdコマンドで移動しましょう。
- test.pyの作成
1行目はpythonのインタプリタの場所です。
わからないときは、ターミナルで
とすれば、
などと出てきます。
2〜5行目は、日本語表示する際に必要です。
6行目以降は、Python3でHTMLを書くならこれです。なくても構いません。
その場合は12行目だけでいいですね。
サンプルコード
#!/Library/Frameworks/Python.framework/Versions/3.6/bin/python3
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
print("Content-Type: text/html; charset=utf-8")
print("")
print("""
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1>It works!</h1>
<p>chmod 755 /Applications/MAMP/htdocs/chatbot.py</p>
<p>finder :apache_error.log</p>
<p>本文</p>
</body>
</html>
""")
print('お疲れ様です。')
実行結果
###エラー時の対策
ブラウザでエラーが出ているなら、
finderでapache_error.logを検索し、
コンソールでapache_error.logを確認して見ましょう。
以下、いくつかよくあるものをメモしておきます。
malformed header from script
HTTPヘッダーが不完全な場合
3から12行目が間違っている可能性があります。
Exec format error
実行形式エラーでよくあるのが、
1行目に正しいPythonの実行ファイルがある場所を示していないことです。
ターミナルで、1行目に指定してある場所が正しいか、試しに
バージョンを確認して見ましょう。
などと打って
などと出れば大丈夫です。
Permission denied
パーミッションエラーでは、実行しようとしているファイルの実行権限がないということです。
ターミナルで
などと打ってあげてください。
UnicodeEncodeError: 'ascii' codec can't encode characters
日本語などを書いたときに出てきます。
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
は書かれていますか?
その他
インデントエラー(IndentationError)、
構文エラー(SyntaxError)はpython公式HPを確認してください。
質問、要望など
気軽にツイッターのDMどうぞ!
下の鳥さんをクリックすると、サブアカウントに飛びます。