3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【初心者メモ】Pythonでのライブラリ読み込みパス指定の仕方

Posted at

パスの勉強のお時間がやってまいりました。

自作したPythonファイルで、別のファイルを読み出すという時にパスの指定方法でつかえました。メモとして残します。内容は初心者向けです。

要約

  • sys ライブラリ、 osライブラリを使ってsys.path.append(os.pardir)という形はよく使われる
  • sys.path.append("hoge")のhoge部分に相対パスを指定すればそこから読み出してくれる

本論

前提

下記のファイルで、main.pyからfunctions.pyを読み出したい想定

/application
  /common
    functions.py
  /main
    main.py #今自分がここにいるとする

方法1:sys.path.append(os.pardir)を使う。

import sys, os
sys.path.append(os.pardir)

# 読み出したいファイル名
from common.functions import hogehoge

解説

  • sys, os -> それぞれPythonの基本ライブラリ(=インストール不要でimport指定だけで使えるようになるライブラリ)。sysはpythonの実行環境に関連する操作、osはOSに関わる基本操作を可能にするもの。
  • sys.path -> ライブラリを読み込むパス(C:/hogehoge/hogehoge/みたいな)を 表す
  • sys.path.append("hoge") -> 上記をhogeに変更する
  • os.pardir -> OS依存の親ディレクトリを表す文字列を表す。Windowsの場合、***「..」***に相当する(コマンドプロンプトに cd .. って打つ時の..に相当)
  • 上記コードでは、sys.path.append(os.pardir)とコードが読まれた瞬間に、ライブラリの読み込みディレクトリが/applicationsに変更されるので、そのあとcommon.functions.pyの読み込みが可能となっている

方法2:sys.path.append()の括弧内に相対パスを指定する

import sys
sys.path.append("../common")

解説

  • やっていることは方法1と同じです
  • ただし、こちらなら複雑なディレクトリを表現できます
  • 例えばsys.path.append("../../another_application/lib/hogehoge")

(以上)

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?