2015/10/15

【Python】Pythonモジュールとしてのpip

Pythonを使っていると必ずpipと仲良しになります。

Pythonのパッケージ管理系ツールはいろいろあるようですが、こちらの記事(▼)が201501時点での結論とのこと
Python パッケージ管理技術まとめ (pip, setuptools, easy_install, etc)
http://www.yunabe.jp/docs/python_package_management.html

というわけでpipですが、
pipだけで検索するとアイドル関係のなにかが出てきますが、
インストールについてはこちら

いつの間にかpipのインストールが楽になってた件 @ Qiita
http://qiita.com/who_you_me/items/831d62f396e6d66dda66


使い方についてはこちら
pipの使い方 (2014/1バージョン) @ そこはかとなく書くよん。
http://tdoc.info/blog/2014/01/15/pip.html

……がよさそうでした。
(いずれも素晴らしい情報に感謝!)

ということでコマンドラインで使うpipそのものは情報も潤沢にあってよいのですが、
pipをインストールするとPythonからもpipモジュールが使えるようになります。
なんじゃらほいと思ってたんですが
こう使うようです。
(※しかしPython経由で使う意味というか機会はそんなになさげですがw)

import pip

pip.main(['list'])
pip.main(['list','-o'])


pip.main(['install','{some package name}'])


リストの第一要素に「install」や「list」などpipのコマンドを与えます。
どれでも実行が完了すると 0 が出力されます。
なるほどー これで、

>>> pip.main(["install",r"path\to\wheel\numpy-1.10.1+mkl-cp27-none-win_amd64.whl"])
Processing c:\users\{user}\downloads\numpy-1.10.1+mkl-cp27-none-win_amd64.whl
Installing collected packages: numpy
Successfully installed numpy-1.10.1
0

みたいな。

listなど問い合わせは、普通にプリントされることになるので
これを受け取りたい場合はsubprocessでしょうか。

import os
import subprocess as subp

pipResult = subp.check_output(["pip","list"]).split(os.linesep)
print pipResult


■参考

Installing python module within code @ stackoverflow
http://stackoverflow.com/questions/12332975/installing-python-module-within-code


Windows7 64bitでPython2.7+numpy+matplotlib+ipythonを入れる @ suzukiyou blog
http://suzukiyou.hatenablog.com/entry/20150427/1430060559


Unofficial Windows Binaries for Python Extension Packages
http://www.lfd.uci.edu/~gohlke/pythonlibs/


0 件のコメント:

コメントを投稿