urljr 1.0.1
簡単そうだったのでチョイス(´・ω・`)
もちろん全機能網羅なんてありえません。
名前は「ゆーあーるえるじゅにあ」じゃなくて、もしかして
JanRain's URL Utilities
って書いてあるので作者さんの名前だったり?
ちなみにパッケージのページはこちら。
URI(URL)関連のモジュールなようですが
- URIの妥当性チェック
- 指定したURLをとってくる
ということができるようです。かなり斜め読みですが。
urljr.urinorm
正しいURLか?ってーやつですね。内部では正規表現で評価してくれます。
たとえば
>>> import urljr.urinorm as urinorm
>>> urinorm.urinorm('http;//www.example.com/index.html')
urinorm.のurinorm関数にURIを与えると(意図的にコロンをセミコロンにしています。)
Traceback (most recent call last):
File "", line 1, in
File "C:\Python25\Lib\site-packages\urljr\urinorm.py", line 138, in urinorm
raise ValueError('No scheme specified')
ValueError: No scheme specified
こんな感じにエラーとなった原因をつけたValueErrorをraiseしてくれます。使うときはtry〜exceptで使いましょうってことですね。
また、
>>> urinorm.urinorm('http://www.example.com/dir/../dir/index.html')
'http://www.example.com/dir/index.html'
というようなURIを指定した場合、無駄な部分をそぎ落としてリターンしてくれます。
認証用のIDを含んだURIもちゃんと判別してくれます。
>>> urinorm.urinorm('http://user@www.example.com/dir/../dir/index.html')
'http://user@www.example.com/dir/index.html'
もちろんエンコードされたURLでも、クエリパラメータがついていてもOK。
urljr.fetchers
URIで指定したページをとってきてくれます。
import urljr.fetchers as fetchers
res = fetchers.fetch('http://www.example.com/')
という感じで引数で指定したURIを取得しにいってくれます。
リターンされたresはurljr.fetchers.HTTPResponseクラスのインスタンスで、
- body str型、受信したレスポンスボディ
- status str型、httpステータスコード
- headers Webサーバから受信したレスポンスヘッダをディクショナリ型で表現
- final_url str型、リダイレクトされた場合は最後にアクセスすることになったURI
というプロパティを持ってます。
ちなみにデフォルトではページの取得にはurllib2を利用する模様。urllib2使ったこと無いんですが、直接使うよりは楽なのかな?
Easy Install
つまるところパッケージマネージャです。
PerlでいうところのCPAN、PHPでいうところのPEAR。ちゃんと依存パッケージもインストールしてくれます。(たとえばSQLObjectだとFormEncode)
ちなみにこれを書いているときのeasy_installのバージョンは0.6c9でした。
導入編
要求Pythonのバージョンは2.3.5、64bitマシンだと2.4以上とのこと。
各プラットフォームごとにインストールのやり方が異なります。
まずは、自分の環境(OSとPythonのバージョン)にあったEasyInstallをここからDLしましょう。ページの下のほうに各ファイルへのリンクがあります。
Windowsの場合、インストーラが.exe形式で提供されているので、そちらをDLしてダブルクリックすれば完了です。
うちの環境では、Pythonインストールパスが C:\Python25 だったので、C:\Python25\Scripts のパスにeasy_install.exeなどのファイルがインストールされました。
RedHatのRPM形式でも提供されているようで、そこからインストールすると、/usr/binにeasy_installの実行可能ファイルが設置されるようです。
パスも通っていることですし、シェルから
#easy_install ほにゃらら〜
で利用できると思います(実際に試してないのでこのとおりにいかないかもしれません)
.egg形式のインストーラをDLします。
.egg形式のパッケージを導入するためのセットアップツールが何で.egg形式で提供されんだよwwwとか思うかもしれませんが、ファイルの先頭が
#!/bin/sh
if [ `basename $0` = "setuptools-0.6c9-py2.4.egg" ]
then exec python2.4 -c "import sys, os; sys.path.insert(0, os.path.abspath('$0'));(以下略
な風になっていますので、
#sh setuptools-0.6c9-py2.4.egg
でインストールできます。--prefixなどを指定してやることもできるようです。
Linuxでオプションなしでやってみましたが、/usr/binに実行ファイルがインストールされました。
使い方
- 名前を指定して最新版をインストール
easy_install 名前
基本的にPyPIにあるパッケージならこれで大丈夫かと思います。
パッケージ名の大文字小文字は区別しないようです。SQLObjectでしか試してませんが。
- tar.gzとかtgzファイルのURIを指定してインストール
easy_install URI
そのまんまですね。
- ローカルにある.eggファイルからインストール
easy_install /path/to/foo.egg
見てのとおりです。
- インストール済みのパッケージを強制アップグレード
easy_install −U パッケージ名
オプションで-U(--upgrade)とすりゃForceUpgradeになります。
ほかにもいろいろオプションがあって
easy_install --helpで
で確認できます。
DLページのURLとバージョンを指定してインストール、みたいなこともできるようなんですが、うまくいきませんでした(´・ω・`)探した挙句PyPIからDLしてたりと・・・。
- バージョン指定インストール
easyinstall 名前==バージョン
これ書いている当時のSQLObjectのLatestは0.10.4ですが、
easy_install sqlobject==0.9.9
とすれば0.9.9がインストールされます。
0.10.4をインストールした状態で上記コマンドを実行するとsite-packagesディレクトリには両方のバージョンが混在することになりますが(0.10.4のパッケージが消されるわけではない)、
Removing sqlobject 0.10.4 from easy-install.pth file
Adding SQLObject 0.9.9 to easy-install.pth file
という具合のメッセージが出て、後からインストールした0.9.9がアクティブな状態になります。
- アクティブなバージョンの切り替え
んで、アクティブなバージョンを0.10.4に戻すには
easy_install sqlobject==0.10.4
とすればOK。すでにパッケージはインストールされているので、いちいちDLしにいきません。
が、お察しのとおり-Uオプションをつけると
easy_install -U sqlobject==0.10.4
パッケージを取得してインストール、アクティブ化をしてくれます。
- アンインストール
easy_install -m 名前
ようするに-mオプションでアンインストールです。
もちろん ==バージョン とすれば複数ある中から指定したバージョンをアンインストール可能です。
が、残ったバージョンをアクティブにはしてくれませんのでご注意を。
まだ引用元ページの半分も行ってませんが、easy_installの基本的な使い方はおさえたとおもうのでこんなところで。
最後に