MAMP에서 Python3을 브라우저에 표시
망비록으로서 가능한 한 자세하게 써 갑니다.
목차
환경
OS : MacOS
환경 :MAMP
언어 : 파이썬 3.6.1
브라우저 :chrome
텍스트 편집기 : Atom
절차
응용 프로그램 Finder에서 httpd.conf 검색
장소는
/Applications/MAMP/conf/apache/httpd.conf
에 있었다.
httpd.conf에서
#AddHandler cgi-script .cgi
을
AddHandler cgi-script .cgi .py
로 변경하고 httpd.conf를 다시로드하기 위해 MAMP 재부팅프로그램의 실행 권한을 부여하기 위해,
예를 들어 test.py를 만들면
터미널에서
$ chmod 755 test.py
그리고 치자.No such file or directory로 나오면,
터미널에서 현재 위치가 잘못되었으므로 cd 명령으로 이동합시다.
첫 번째 줄은 파이썬 인터프리터의 위치입니다.
모르면 터미널에서
$ which python3
그렇다면,/Library/Frameworks/Python.framework/Versions/3.6/bin/python3
などと出てきます。
2〜5行目は、日本語表示する際に必要です。
6行目以降は、Python3でHTMLを書くならこれです。なくても構いません。
その場合は12行目だけでいいですね。
サンプルコード
test.py
#!/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行目に指定してある場所が正しいか、試しに
バージョンを確認して見ましょう。
$ /Library/Frameworks/Python.framework/Versions/3.6/bin/python3 --version
등으로 치십시오.
Python 3.6.1
등으로 나오면 괜찮습니다.
Permission denied
권한 오류는 실행하려는 파일에 대한 실행 권한이 없다는 것입니다.
터미널에서
$ chmod 755 実行したいファイル名
등으로 치십시오.
UnicodeEncodeError: 'ascii' codec can't encode characters
일본어 등을 쓸 때 나옵니다.
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
쓰여져 있습니까?
기타
들여쓰기 오류(IndentationError),
구문 오류 (SyntaxError)는 파이썬 공식 HP를 확인하십시오.
질문, 요청 등
부담없이 트위터의 DM 부디!
아래의 새를 클릭하면 하위 계정으로 날아갑니다.
,,,
/::o・ァ ♪
∈미;;;노, 노
Reference
이 문제에 관하여(MAMP에서 Python3을 브라우저에 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kanaka/items/58387f96d7832ec74f29텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)