ライブラリのディレクトリ構成

投稿者: | 2022-03-19

目次

ライブラリの格納ディレクトリ

3種類のライブラリがある

標準ライブラリディレクトリ

  • pythonの標準ライブラリが格納されるディレクトリ
  • ユーザーが独自にパッケージをインストールすることはない

site-packageディレクトリ

  • サードパーティ製のモジュールを格納するフォルダ
  • システムの全利用者が利用するパッケージをインストールするディレクトリ
  • pip install パッケージ名 、のデフォルトだとココにインストールされる
  • python がどこを参照しているのかわからない場合は以下のコマンドで場所を確認できる
>>> import site
>>> site.getsitepackages()
[〜〜〜〜〜'/lib/python3.8/site-packages']

ユーザー別site-packagesディレクトリ

  • サードパーティ製のモジュールを格納するフォルダ
  • 各ユーザーが自由にインストールできるディレクトリ
  • pip install –user パッケージ名でここにインストールされる
種類Unix系OSWindows
標準ライブラリディレクトリ/usr/local/lib/python3.6C:¥Users¥USER¥AppData¥Local¥Programs¥Python¥Python36¥lib
site-packageディレクトリ/usr/local/lib/python3.6/site-packagesC:¥Users¥USER¥AppData¥Local¥Programs¥Python¥Python36¥lib¥site-packages
ユーザー別site-packageディレクトリ/home/USER/.local/lib/python3.6/site-packages

(macOS)
/Users/USER/Library/Python/3.6/lib/python/site-packages
C:¥Users¥USER¥AppData¥Roaming¥Python¥Python36¥site-packages

binディレクトリ

  • アプリケーションパッケージなどでは実行可能なコマンドファイルをインストールする場合がある
  • 例)pipパッケージはpipコマンドをインストールする
  • インストールすると、コマンドファイルにもシステム全体から利用できるディレクトリにインストールされる
種類Unix系OSWindows
site-packagesディレクトリ/usr/local/binC:¥Users¥USER¥AppData¥Local¥Programs¥Python¥Python36¥Scripts
ユーザー別site-packagesディレクトリ~/.local/bin

(macOS)
/Users/USER/Library/Python/3.6/bin/
C:¥Users¥USER¥AppData¥Roaming¥Python¥Python36¥Scripts
  • Pythonによるコマンドを利用する場合はこれらディレクトリも環境変数PATHに登録し、簡単に実行できるようにしておくと楽

モジュール検索PATH

  • importでモジュールをインポートする際、pythonはsysモジュールのpath変数に指定したディレクトリを検索しにいく
  • ‘sys.path’と叩くと、python が読みに行くモジュールのディレクトリ名やzipファイル名のリストが表示される
  • デフォルトでは、上述の標準ライブラリディレクトリや、site-packagesディレクトリのディレクトリ名などが載っている
  • 以下はAnaconda環境
  • 例えば、python mydir/spam.pyのようにスクリプトを実行した場合
  • そのスクリプトファイル(.py)の格納ディレクトリからの相対パスとなる
  • スクリプトファイルを指定していない場合は、カレントディレクトリからの相対パスになる
  • sys.pathに登録されている順にpythonは検索を行う
    • カレントディレクトリ→/Users/../opt/anaconda3/lib/python38.zip → /Users/…/opt〜の順
  • sys.pathは修正可能