Python」カテゴリーアーカイブ

プログラミング言語「Python」に関するカテゴリーです。

ロリポップでweb.pyが使えなくなった

ロリポップのサーバーを新サーバーに移行したら、Pythonのフレームワーク「web.py」が使えなくなってしまいました。

WEBサーバー移設メンテナンスのお知らせ – 2016年01月15日 12時00分 / メンテナンス情報 / お知らせ – レンタルサーバーならロリポップ!
https://lolipop.jp/info/mainte/5189/

原因はよく分かりませんがmime.typesでPermission deniedとなるようです。

Permission denied: '/etc/mime.types'

ということで、システムを少し変更してみました。

web.pyはPython3で使えないため、システムを移行させる良い機会だったと考えることにしたいと思います。


実は、このエラーには経験があって、xreaのサーバーが更新された際にもweb.pyでエラーになり、web.pyの利用を断念したことがあります。GMO系列のサーバーということで、同じ理由なのかなと想像します。(さくらインターネットでは問題なく使えています。)

Pythonでお手軽Webサーバー

PythonにはHTTPサーバー用のモジュールが組み込まれていてHTML/CSSの表示確認などで便利です。

Python2向け

使い方は表示したいディレクトリに移動してPythonを実行するだけです。

$ cd path-to-www
$ python -m SimpleHTTPServer

ポート番号を指定したい場合は次のようにします。

$ python -m SimpleHTTPServer 8080

後は好きなブラウザから指定したポート番号でアクセスします。

例: http://localhost:8000/

Python3向け

Python3でも基本的に使い方は同じですが、SimpleHTTPServerの代わりにhttp.serverを使います。

$ python -m http.server 8080

一般ユーザーで1-1023のポート番号を指定してもエラーになるので気をつけてください。

Pythonで日本語ドメインの変換

Pythonを使ってPunycode表記に変換する方法

日本語ドメイン名をPunycode表記に変換

>>> u'日本語.jp'.encode('idna')
'xn--wgv71a119e.jp'

Punycode表記を日本語ドメイン名に変換

>>> 'xn--wgv71a119e.jp'.decode('idna')
u'\u65e5\u672c\u8a9e.jp'
>>> print 'xn--wgv71a119e.jp'.decode('idna')
日本語.jp