Atom's tech blog

Pythonを勉強しよう! Pythonパッケージ管理について

f:id:iAtom:20201113144827j:plain

Python初心者の備忘録.....

今回はPythonのパッケージ管理についてです。

Pythonのパッケージ管理には「 pip 」パッケージ(ライブラリ)があり、いろいろなパッケージをインストールやアンインストール、またインストールした詳細情報など確認することに使います。

pip インストール

公式サイトにインストール手順があるので、そちらをご参照ください。 pip.pypa.io

MACでは「 ターミナル 」を起動します。

「 LaunchPad 」→「 その他 」→「ターミナル」です。

まずは「 ターミナル 」から下記コマンドでインストール用のpythonファイルをダウンロードします。

 $ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

次にダンロードしたPythonファイルを実行しインストールをします。

   $ python3 get-pip.py

パッケージインストールコマンド関連

項目 コマンド
1 単独インストール pip install パッケージ名
2 複数インストール pip install パッケージ名1 パッケージ名2 ....
3 バージョンを指定したインストール pip install パッケージ名 == バージョン
4 一括インストール pip install -r requirements.txt
5 アップグレード pip install --upgrade パッケージ名 または pip install -U パッケージ名
6 単独アンインストール pip uninstall パッケージ名
7 複数アンインストール pip uninstall パッケージ名1 パッケージ名2 ....

一括インストールの「 requirements.txt 」のファイル名は、なんでもよいです。 そのファイルは、コマンドを実行するディレクトリに配置するか、パス情報もコマンド入力することもできるようです。 例:「 pip install -r ./pipinst/requirements.txt 」など。

requirements.txtの書き方例

一番良い方法は、下記「 pip freeze 」コマンドを用いてリダイレクトしてファイルに保存し、そのファイルを別の環境へインストールが良いです。

   $ pip freeze > requirements.txt

下記は公式サイトです。手動で記述するときは下記例をご参考に。

自分自身はトライしたことはありません。

   ####### example-requirements.txt #######
   # 
   ###### Requirements without Version Specifiers ######
   nose
   nose-cov 
   beautifulsoup4
   #
   ###### Requirements with Version Specifiers ######
   #   See https://www.python.org/dev/peps/pep-0440/#version-specifiers
   docopt == 0.6.1             # Version Matching. Must be version 0.6.1
   keyring >= 4.1.1            # Minimum version 4.1.1
   coverage != 3.5             # Version Exclusion. Anything except version 3.5
   Mopidy-Dirble ~= 1.1        # Compatible release. Same as >= 1.1, == 1.*

インストールリスト表示

コマンドには「 list 」と「 freeze 」があります。どちらもインストールリストを表示しますが、表示形式が異なります。

実施の表示イメージをみましょう。

  $ pip freeze
  absl-py==0.9.0
  alabaster==0.7.12 
  anaconda-client==1.7.2
   $ pip list
   Package                            Version            
   ---------------------------------- -------------------
   absl-py                             0.9.0              
   alabaster                          0.7.12              
   anaconda-client                1.7.2   

最新版がインストールされていないパッケージを表示

このコマンドはよく使いますね。最新化する必要があるか判断するために必要です。

オプションは「 -o 」または「 --outdated

  $ pip list -o
   Package                       Version             Latest    Type 
   ----------------------------- -------------------    ---------    -----
   absl-py                          0.9.0               0.11.0    wheel 
   appscript                      1.0.1                1.1.1      wheel
   asn1crypto                    1.3.0               1.4.0      wheel

最新版がインストールされているパッケージを表示

オプションは「 -u 」または「 --uptodate 」。

   $ pip list -u
   Package                            Version    
   ---------------------------------- -----------
   alabaster                           0.7.12     
   applaunchservices             0.2.1      
   appnope                            0.1.0

依存されていないパッケージのみを表示

オプションは「 --not-required 」。このオプションで実行することで、他のパッケージに依存するか確認ができます。

もし単独で使用しないが、他のパッケージで使用している可能性もるため、アンインストール実施の確認にも使用します。

   $pip list --not-required
   Package                            Version          
   ---------------------------------- ----------------- 
   anaconda-project               0.8.3            
   argh                                   0.26.2           
   asn1crypto                         1.3.0