LoginSignup
66
62

More than 5 years have passed since last update.

Python3.4からpipが標準インストーラに!?

Last updated at Posted at 2013-11-13

Rubyにはgem、Node.jsにはnpmがあるが、元々Pythonにはパッケージマネージャは無かった。

それがいつの頃からか、easy_installなるものが現れ、さらにpipが作られた。今ではpipがほぼデファクトとなりつつあるけど、後付でインストールするパッケージの一つという位置づけは変わらない。箱を開けたら直ぐに使えるという意味で "Batteries included" を標榜しているPythonとしてはちょっと寂しい。

その状況をなんとかしようということでPEP-453 Explicit bootstrapping of pip in Python installationsが提案されている。「pipをPython 2.7, 3.3 及び3.4の公式推奨デフォルトインストーラとしよう」という提案で、3.4から実際に標準搭載されるらしい。Pythonをインストールするとpipコマンドが同時にインストールされるのかと思いきやちょっと違うっぽいのでここにメモ。

まず、3.4で追加されるのが "ensurepip"というモジュール。でこれが何をするかというと、まぁ名前のとおりなのだが「pipが入っている事を確実にする」(変な日本語だな...)。

具体的には

$ python3.4 -m ensurepip

とすると

  • pipがインストールされていない場合はpipをインストール
  • 既にインストールされている場合はなにもしない

という挙動らしい。そして既にインストールされていてもpython3.4に付いてくるものの方が新しくてそれに置き換えたい場合は

$ python3.4 -m ensurepip --upgrade

とする。ちなみにこのpipのインストールの時にネットワークアクセスはない。つまり、Pythonの標準パッケージにpipを同梱して配る。でもデフォルトではインストールせずに上記のコマンドを叩くと必要に応じてインストールすると。なんという奥ゆかしさwww

せっかくなので試してみようと思って最新の3.4.0a4で確認してみたが、"No module named ensurepip"とのこと orz..

PEP-429 Python 3.4 Release Scheduleによるとbeta1が11/24。そこにはきっと入るだろうが、そこまではお預けってことかな。

66
62
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
66
62