2012/08/17(金) [n年前の日記]
#1 [python] Pythonの異なるバージョンに対応したスクリプトって書けないのかな
こういう感じの書き方はできないのかなあ…?
optparse ―― コマンドラインオプションを解析するライブラリについて調べていたら、「optparseが許されるのは Python 2.6 までだよねー」「argparseを使うのがトレンドだよねー」という話を見かけたわけで。しかし、Python 2.6 上で import argparse なんて書こうものなら、「そんなライブラリはねえよ」と文句を言われてしまう。 *1
まあ、optparse, argparse に限って言えば、Python 2.7 以降で optparse が削除されるわけではないので、共用できるスクリプトを書くなら optparse 使って argparse はガン無視する、という方針でいいのだろうと思うけど。あくまで、optparse は今後メンテナンスしない・argparse を使うほうが望ましい、と言ってるだけだし。
しかし、こういうアレコレが他にもたくさんありそうだなと。古い書き方をしても、新しいバージョンのPythonで動くのであれば、古い書き方さえしておけばいい、ということになるだろうけど。おそらく、それでは済まない場合もありそうな。であれば、Python のバージョンによって処理が変わるスクリプトを書けたら、便利だったりするのかなと。
でも、色々と堅苦しい Python の世界においては、そういう泥臭い(?)やり方は用意されてない可能性が高そう。おそらく、Pythonic とやらに反するのだろうな。
#ifdef python26 import optparse #ifdef python27 import argparse #endif
optparse ―― コマンドラインオプションを解析するライブラリについて調べていたら、「optparseが許されるのは Python 2.6 までだよねー」「argparseを使うのがトレンドだよねー」という話を見かけたわけで。しかし、Python 2.6 上で import argparse なんて書こうものなら、「そんなライブラリはねえよ」と文句を言われてしまう。 *1
まあ、optparse, argparse に限って言えば、Python 2.7 以降で optparse が削除されるわけではないので、共用できるスクリプトを書くなら optparse 使って argparse はガン無視する、という方針でいいのだろうと思うけど。あくまで、optparse は今後メンテナンスしない・argparse を使うほうが望ましい、と言ってるだけだし。
しかし、こういうアレコレが他にもたくさんありそうだなと。古い書き方をしても、新しいバージョンのPythonで動くのであれば、古い書き方さえしておけばいい、ということになるだろうけど。おそらく、それでは済まない場合もありそうな。であれば、Python のバージョンによって処理が変わるスクリプトを書けたら、便利だったりするのかなと。
でも、色々と堅苦しい Python の世界においては、そういう泥臭い(?)やり方は用意されてない可能性が高そう。おそらく、Pythonic とやらに反するのだろうな。
*1: Python 2.6上でも、argparse を別途インストールすれば使えるらしい。が、そこまでして使うべきものなのか、スクリプトを公開する際に、「argparseを各自インストールせよ」と要求するのは妥当なのか、という感も。
[ ツッコむ ]
以上です。