Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでpipインストーラーをブートストラップする方法(ensurepipモジュール活用ガイド)

Pythonの標準ディストリビューションに組み込まれているモジュールやパッケージに加えて、サードパーティの開発者による多数のパッケージが「Python Package Index(PyPI)」(https://pypi.org/)と呼ばれるPythonパッケージリポジトリに公開されています。ここからパッケージをインストールするには、pipユーティリティが必要です。pipは独立したプロジェクトですが、Python 3.4以降ではPythonディストリビューションにブートストラップ(同梱・自動セットアップ)されるようになりました。

ensurepipモジュールとは

ensurepipモジュールは、既存のPython環境にpipをブートストラップするための機能を提供します。通常、ユーザーがこのモジュールを明示的に使う必要はありません。しかし、通常のインストールや仮想環境の作成時にpipのインストールがスキップされた場合には、このモジュールの出番となります。

pipなしの仮想環境を作成する

以下のコマンドを実行すると、pipがインストールされていない仮想環境を作成できます。

C:\python37>python -m venv --without-pip e:\testenv

仮想環境ディレクトリ内のscriptsフォルダには、pipユーティリティが含まれていません。そこで、ensurepipモジュールを使って、システム全体のインストールに含まれるバージョンのpipを組み込みます。最新版をインストールしたい場合は--upgradeオプションを指定します。

E:\testenv>scripts\python -m ensurepip --upgrade
Looking in links: C:\Users\acer\AppData\Local\Temp\tmpp1bb2lym
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-18.1 setuptools-40.6.2

ensurepipの主なオプション

デフォルトのpipインストール動作は、以下のオプションで変更できます。

  • --root <dir> − 現在アクティブな仮想環境のルート(存在する場合)や現在のPythonインストールのデフォルトのルートではなく、指定したルートディレクトリを基準にpipをインストールします。

  • --user − 現在のPythonインストールに対してグローバルにインストールする代わりに、ユーザーのsite-packagesディレクトリにpipをインストールします(アクティブな仮想環境内ではこのオプションは使用できません)。

ensurepipモジュールが定義する関数

ensurepipモジュールには、次の2つの関数が定義されています。

  • ensurepip.version() − 環境をブートストラップする際にインストールされる、バンドルされているpipのバージョンを文字列で返します。

  • ensurepip.bootstrap() − 現在の環境または指定された環境にpipをブートストラップします。

注意点:副作用について

ブートストラップ処理は、sys.pathos.environの両方に副作用をもたらします。また、ブートストラップの過程でpipが必要とする追加のモジュールがインストールされる場合がありますが、他のソフトウェアがそれらの依存関係が常にデフォルトで存在すると想定してはいけません。

  1. Pythonリストの内部動作を徹底解説!オブジェクトとフレームの仕組み

    このチュートリアルでは、Python 3.x(およびそれ以前のバージョン)におけるリストの内部動作について詳しく解説します。Pythonのステートメントを1行ずつ実行したときに、メモリ上でどのようにオブジェクトやフレームが形成されるのかを、図解を交えながら見ていきましょう。 リストの初期化 まずはリストの初期化です。これは、いくつかの要素を持つリストを作成することを意味します。 >>> lis=[1,2,3,4] 上図のように、リスト変数 lis はグローバルフレーム内で宣言され、リストオブジェクトへの参照(ポインタ)を保持しています。重要なのは、変数そのものがデータを格納

  2. Pythonデバッガー(pdb)の使い方を徹底解説!基本コマンドからブレークポイントまで

    Pythonデバッガー(pdb)とはソフトウェア開発の分野では、プログラム内のエラー(バグ)を発見し修正するプロセスを「デバッグ」と呼びます。Pythonの標準ライブラリにはpdbモジュールが含まれており、これはPythonプログラムをデバッグするための一連のユーティリティを提供します。デバッグ機能はPdbクラスとして定義されており、このモジュールは内部的にbdbおよびcmdモジュールを利用しています。コマンドラインからの起動方法pdbモジュールには非常に便利なコマンドラインインターフェースが用意されています。Pythonスクリプトの実行時に-mスイッチを使ってインポートすることで、デバッガー