自作Pythonのインポート

Pythonを学び始めて一番最初に苦労したのは、fromとimportです。インポートのイメージができない。Excelから始めたので、参照設定でやっとピンときました。

Pythonの一番の強みはライブラリの豊富さです。自分で書いたコードすらもすべて扱うことができます。

そんな強みを上手に使うには、インポートの方法を知らないといけません。今回は自作Pythonの読み込みにフォーカスして備忘録します。

importのfromの部分難しい!

大きなコードになれば、同じような処理をするのに、Pythonファイルをまとめると思います。しかし、必ず同じ階層にファイルを用意できるわけではありません。

そんな時にどうすれば良いのか?

インポートの基本文

※from モジュール名は同一フォルダ内であれば、ファイル名だけでのインポートができます。

フォルダ構成

今回フォルダアドレスを調べるために実験環境を用意しました。もしも、理解を深めたければ、一緒に作ってみてください。

フォルダ構成のポイント

Folder0の中に、Folder1とFolder2を用意

Folder0には、Test1.pyを設置

Folder1には今回起動.pyとTest2.pyを設置

Folder2には、Test3.pyとフォルダ2つを設置

2つのフォルダはそれぞれナンバリングでFolder2_1とFolder2_2

2つのフォルダの中には、Test4.pyとTest5.pyがそれぞれ格納されている

起動は、今回起動.pyのためFolder1が軸となる

今回起動.pyの中身

今回は、上位階層と下位階層に進めているが、上位階層へはエラーが出てしまいできませんでした。なので、sysで場所を変更してからインポート処理をしました。

Test(n).pyの中身

この(n)は、ナンバリングの話なので1~4の数字が入ります。ファイルの保管場所が変わるだけであり、内容はすべて同一の内容で作成します。

上記は、自分のファイルパスを出力します。

上位階層への指定はうまくいかなかった

上位階層を指定する方法はたくさん出ていました。しかし、結局私のできた方法はこの方法だけ。

エラーが起きたコードの紹介

今回のエラーコード

..を使うと、戻るコード。つまりは上位階層へ戻るといろいろなサイトで紹介されていたが、僕はエラーコードが出てしまってできなかった。

なので、sysを使った方法に切り替えています。

まとめ

インポートは一番最初に面倒だと感じる部分です。ここまでインポートを行えるようになればだいぶ上級者なような気もする。がしかし、僕はこれを機にどんな場所にあってもインポートできる自信がつきました。

sysを使うのはなんか微妙なやり方だなぁ~と思うし、なんかきれいなコードではないように見えるのですが、今のところこのやり方が確実。

新しいやり方を見つけたらまたご紹介したいと思います。