64
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

Organization

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

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。そこにはきっと入るだろうが、そこまではお預けってことかな。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
64
Help us understand the problem. What are the problem?