君は牛を二頭持っている

渋谷あたりのエンジニアのブログ。OSからウェッブなフロントエンドまでとか色々。

Python3.4で追加されたensurepipの紹介

Python3.4が今年の3月16にリリースされました。
色々追加要素があって、詳細は公式見たほうが良いです。

この中でも特に「pip(パッケージマネージャ)がすごく入れやすくなった」というのが、Pythonをよく使う皆はもちろん、これから使う人には非常に嬉しい要素なはずなので、とりあえず紹介してみます

はじめに

7割ぐらい書いたあたりで、非常にわかりやすい記事を見つけてしまって脱力感を抱いているのでこちらを見たほうがいいかもしれません
Python3.4のensurepip(それとpyvenvの更新)

pipって何よ?

「pip is 何」という問に関して端的に答えるとともにpipに対するこれまでのPythonユーザのイメージを表す端的なツイットがあります


pipはモジュールとかを入れたり消したり検索したり色々できる便利なパッケージマネージャなのですが、今までは以下の様な手順を経て入れる必要がありました*1

  1. 同じくパッケージマネージャであるeasy_install(を含むモジュールであるsetuptools)をインストール*2
  2. easy_installでpipをインストール
  3. めんどくさい( ◞‸◟)

ちょっと前に、もう少し楽になったようですが、いずれにしてもPythonのインストールとパッケージマネージャのインストールが全く別の作業になっていたわけです

3.4でpipの何が変わったの?

pipがセットアップしてすぐに入れられるようになりました。
細かくはどういう感じになっているかというと

  • Python3.4にensurepipというモジュールが付いてくる
  • ensurepipにpipのwheelが付いてくる
  • ここからちょっとどうなってるのかわからないけど、どうにかしてpipのwheelを使ってpipをインストールしている

つまりensurepipというpipをインストール、アップグレードするためのモジュールが追加されていて便利になったって感じです。

使い方

python -m ensurepip

これでsetuptoolsとpipが入るようです

python -m ensurepip --upgrade

これでパッケージマネージャが最新版になります

そのほか

  • 今回の内容はすごく大雑把に書いたけど、とりあえず「pipのインストールの手間が省けるようになったんだなあ」ぐらいの話です
  • 実験中にCentOSでPython3.4をビルドしたんですが、SSLを利用する準備が整っていないと怒られたのでopenssl-develをインストールしました
  • 他にも色々追加要素や変更点があって、個人的には以下のようなものが気になります。誰か教えてください。
  • これを書きながら食べたスタバのデビルズケーキがすごく美味しかったのですが、ガトーショコラと何が違うのかちょっと僕の舌では分かりませんでした。

*1:OSやディストリビューションによって色々な入れ方はありますが、どれでも共通しているやり方として

*2:このステップではスクリプトを落としてくる必要があります https://pypi.python.org/pypi/setuptools