Pythonの日本語出力ではまる(初めてのプログラムで「HelloWorld」はやめろ!)


 仕事だと楽したいので習熟した技術に頼りがち。 
そんなわけで、何か適当な小物プログラムをあえて初だったり、あんまり触らないプログラム、インフラ、フレームワーク等々で作るというのをたまにやってます。

ということで、ロリポップの安いレンタルサーバーがPython対応してたので ほななんかwebページでも作ってみっかと始めました。
 今回あえてフレームワーク無しで素のPythonで作成するつもり。

 とりあえず、よくある「HelloWorld」出力

#!/usr/local/bin/python3.4

print("Content-Type: text/html; charset=UTF-8\r\n")
print("HelloWorld")
ブラウザでアクセスするもいきなりうごきません・・ 
公式ページによるとパーミッションは
cgi 700
ということでした。
横着の777は動作しません!

でパーミッション直して 再実行、無事動いた!

なのでブラウザで表示されたので 次に文言「こんにちわ」に変えてみる。
 動かない・・・

 なぜ!

 当然文字コードの問題だろうと ファイル保存しなおしたり 明示的にコードセットしたり・・ しかし治らん・・

 しばしグーグルの旅。

 しかし、でてくるのは 「Pythonやってみた!」 ほらこんな感じで、簡単に「HelloWorld」ってでるよ! 的なページの群れ。
こんなんいらねーと、
ちょっとイラつきながら探してるとありました!

Amiticaというブログで 「ロリポップサーバーにてCGIをPython3で運用したかった」すばらしい。 内容もドンピシャ。 こういうブログ大好き。 ということで下記ソースを挿入

# coding:utf-8
import cgitb
import sys ,io
sys.stdin =  open(sys.stdin.fileno(),  'r', encoding='UTF-8')
sys.stdout = open(sys.stdout.fileno(), 'w', encoding='UTF-8')
sys.stderr = open(sys.stderr.fileno(), 'w', encoding='UTF-8')
cgitb.enable()


print("Content-Type: text/html; charset=UTF-8\r\n")
print("こんにちわ!")


ちょっと力業的な感じもありますが、今回は動けばそれでいいので
とりあえず。

 ブラウザで表示すると・・
表示されました!
「Amitica」ブログの筆者さん、ありがとう!!

ということで、「HelloWorld」でブログ書く人達。
できるだけ「こんにちわ世界」で実装してから発表してください!

ちなみに、starサーバーとか同価格帯のPythonでも試してみたけど、同じでしたね。
やっぱ、プログラムするのに、ログも見れない低価格サーバーはきついかなー。

こういうの経験する度、枯れた技術っていーよなって感じてしまうのは、年寄なんかな?
なんやかんやで正直PHPが一番楽よね。と思ってしまう。

0 件のコメント :

コメントを投稿