2013年4月6日土曜日

コミックダッシュ!新刊カレンダーのPython2.7対応

久しぶりにDashboard覗いたら、GoogleAppEngineのPythonバージョンが2.7に上がっていて、今使っている2.5が非推奨になっていた。
ちょっと前まで「一部の先行ユーザーで試験的に…」とか言ってたのに。
せっかくだから、今のうちに対応しとくかー。 


コミックダッシュ!新刊カレンダー


久しぶりに、開発用PCのフォルダ開けてみたら、中身がない。一代前の別のPCで開発したのか。
まぁ、こんなときのためのGitHubである。さっそく、cloneして何事もなかったかのように再開だ。 

現バージョンでの稼働確認を取ろうと思ったら、さっそくBeautifulSoup(*1)が見つからないときた。
そりゃ、確かに無いよなぁ。インストールしてないもん。
ただインストールするだけならpipが便利なのだけど、AppEngineに載せるには共用のPython環境ではなく、アプリのフォルダの内側に持ち込む必要がある。
アーカイブをダウンロードし、解凍して、setup.py。懐かしいな、この感覚。

お次はなんだ。findAllメソッドが無いのか。BeautifulSoupのバージョンをPython2.7に対応するものに上げた際、PEP8(*2)に対応していない名前のメソッドが軒並みリネームされたらしい。findAllはfind_allになった。
それでも、やはりfind_allがないと来る。ただし、NoneTypeオブジェクトにはfind_allがないと来た。これはこれは。
BeautifulSoupがバージョンアップしたついでに、動作も変わってしまったようだ。以前は捕まえていたhtmlタグを見つけられなくなっている。

結局、Python2.7対応というよりは、BeautifulSoupと正規表現をいじるのに時間の大半を費やしてしまった。
パフォーマンスとか、取っているのに使っていない要素とか、いろいろ手直ししたいところはあるけれど、疲れたのでやめにした。


*1 説明しよう。BeautifulSoupとは、Webページの内容をPythonで取り扱うためのライブラリとしてメジャーなものである。
*2 説明しよう。PEP8とは、Pythonプログラマなら順守すべきとされているコーディング標準である。逆らっても罰則はない。ソースを読んだ他のPythonプログラマから鼻で笑われるくらいだ。

0 件のコメント:

コメントを投稿