MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

Pythonの公式パッケージインストーラpipと仮想環境venvの使い方


Python 1年生 体験してわかる!会話でまなべる!プログラミングのしくみ

目次

はじめに

毎日pipやvenvを使っていますが、

忘れてググることが多いので、

逆引きメモとして残しておきます。

  

pip逆引きメモ

pipはなんの略ですか?

Pip Installs Packagesの略らしいです。

下記が主なリンク先です。

pip.pypa.io

github.com

en.wikipedia.org

 

pipでインストールできる公式ライブラリはどこで管理されていますか?

こちらのPython Package Index (PyPI)というリポジトリで管理されています。

pypi.org

 

pipはインストールする必要がありますか?

python 3.4以降ではデフォルトでPythonに付いてきます。

 

現在のpipのバージョンを確認したい

$ pip --version

 

pipを最新にアップデートしたい

$ pip install --upgrade pip

 

パッケージのインストール

$ pip install sampleproject

バージョンを指定したい場合は、

$ pip install SomePackage==1.0.4

最小バージョンを指定したい場合は

$ pip install SomePackage>=1.0.4

最小と最大を指定したい場合は

$ pip install SomePackage>=1.0.4, <2.0

あるバージョン以外にしたい場合は、

$ pip install SomePackage~=1.4.2

gitリポジトリからのインストール

$ pip install git+https://github.com/pypa/sampleproject.git@branch

上記のgitリポジトリの直下にsetup.pyが必要です。

また、@の後ろはブランチ名やタグ、コミットハッシュが指定できます。

pip.pypa.io

 

パッケージファイルからのインストール

pipは2つのパッケージファイルフォーマットに対応しています。

  1. source distribution (sdist)

  2. wheel distribution (wheel)

両方とも、.tar.gzや.whlを指定するだけでインストールできます。

$ pip install sampleproject-1.0.tar.gz

 

現在編集しているパッケージをインストール

setup.pyがある場所に移動して、

$ pip install -e .

このインストール方法の場合、

ファイルを変更すると自動的にインストールされたパッケージ側も更新されます。

ライブラリの開発やPRを作る時に便利です。

 

requirements.txtによる複数のパッケージのインストール

インストールしたいパッケージをリスト化したrequirements.txtというファイルを使って一括インストールできます。

$ pip install -r requirements.txt

requirements.txtは各行にpip installの引数を並べたものですが、

詳細な文法はこちらにかかれています:

pip.pypa.io

 

ちなみにrequirements.txtに似た機能のファイルでconstraints.txtがありますが、

下記の記事の通り基本的には使うことはなさそうです。

qiita.com

 

現在インストールされているパッケージからrequirements.txtを作成する

$ pip freeze > requirements.txt

 

現在インストールされているパッケージのリストとバージョンを表示

$ pip install list

上記の方法では表として表示されますが、

json形式で出力することもできます。

$ pip list --format=json | python -m json.tool

 

アップデート可能なパッケージを表示する

$ pip list --outdated

 

他のパッケージに依存してない(使っていなかったら削除できる)パッケージを表示する

$ pip list --not-required

 

Editモードでローカルのコードをインストールしたパッケージを表示する

$ pip list -e

 

パッケージの情報を表示する

$ pip show pyroombaadapter

より詳細を表示したい場合は、

$pip show --verbose pyroombaadapter

 

パッケージのアップデート

$ pip install --upgrade sampleproject

 

パッケージのアンインストール

$ pip uninstall sampleproject

 

現在の環境で依存関係が壊れているか確認する

$ pip check

 

キャッシュされたパッケージのデータのリストを表示する

$ pip cache list

pipは一度ダウンロードしたデータを保持し、再度インストールした時にそのデータを利用するキャッシュ機能があります。

 

キャッシュされたデータを削除する

$ pip cache purge

 

pipのコマンドをbashで補完してほしい

こちらのコマンドでbashrcに設定が追加されます。

$ pip completion --bash >> ~/.bashrc

 

pipをコードから呼ぶ場合、スレッドセーフですか?

今の所No

pip.pypa.io

 

仮想環境venvの使い方

Python3.3から公式機能として追加されたvenvですが、

(3.3以前はvirtualenvという名前で、3rd partyのツールだったようです。)

使い方はかなり簡単で、下記の記事をみればすぐに使えると思います。

docs.python.org

qiita.com

www.sejuku.net

www.python.jp

仮想環境の作成

プロジェクトのディレクトリに移動して、

$ python -m venv .venv

.venv以外の名前でもOKですが、慣習として.venvとすることが多いようです。

仮想環境のアクティベート

OSによって、

先程作成した仮想環境の中のアクティベート用のスクリプトのパスが異なります。

それぞれのスクリプトを実行すれば、仮想環境がアクティベートされ、

プロンプトの前の方に、仮想環境のディレクトリの名前が表示されます。

POSIX系

$ source .venv/bin/activate

Windows系

$ .venv\Scripts\activate.bat

 

仮想環境のデアクティベート

$ deactivate

 

参考資料

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com


Python 1年生 体験してわかる!会話でまなべる!プログラミングのしくみ

MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

myenigma.hatenablog.com