This page looks best with JavaScript enabled

Pythonで自分のファイルをimportする方法3つ

 ·   ·  ☕ 2 min read  ·  🐶 odanny · 👀... views

自分のpythonファイルをどこからでもimport したい

自分が作ったmy_module.py

1
2
import my_module
my_module.functionA()

my_module.pyと同じディレクトリでなくても良い感じに使いたい!

選択肢は3つある.

  1. sys.path.append()する
  2. PYTHONPATH に追加
  3. .pthファイルに書き込み

自分の場合は3. にした.


1. sys.path.append()する

実行したいファイル内だけで,検索パスを追加すればいい時に使う.

検索パスの一覧がsys.pathで取得できる

1
2
3
4
5
>>> print(*sys.path, sep='\n')

C:\Users\username\Miniconda3\DLLs
C:\Users\username\Miniconda3\lib
...

ここにappendすればいい.

1
2
3
4
5
6
7
>>> sys.path.append("C:\hello\world") # パスの追加
>>> print(*sys.path, sep='\n')

C:\Users\osato\Miniconda3\DLLs
C:\Users\osato\Miniconda3\lib
...
C:\hello\world

まとめるとコードとしては以下のようになる.

1
2
3
import sys
sys.path.append("your/directory")
import your_module

ただしこれはPEP8に準拠した書き方でないのでよくない.


2. PYTHONPATH に追加

PCの環境変数をいじっていいからnumpyなどのようにどこからでもimport したいとき.

Python内のデフォルトパスを通す方法(Windows, Linux)

ここが参考になる


3..pthファイルに書き込み

これだけのために環境変数をいじるのはちょっとはばかられるとき

参照させたいパスを書き込める.pthファイルを作成する.具体的にはsys.pathで表示されるディレクトリの中に”*.pth"ファイルを作成し、そこに追加したいパスを記載すればいい.よってこのファイルを消してしまえば検索パスから除外できるので手軽.

おすすめはlib/pythonX.X/site-package配下に置くことらしい.
パスだけ書き込むようにする

次調べる

__init__.pyを調べてみたい,仕組みをなにもわかっていない…

参考

【python】任意のライブラリをインポートするためパスを通そう!

[Python] ModuleNotFoundError解決方法

PythonでImportErrorが起きたときの確認事項まとめ

Share on

odanny
WRITTEN BY
odanny
レトロゲームが好きな大学院生