PRMLmasters / PRML

implement algorithms in PRML
0 stars 0 forks source link

importに関する注意(特に上位階層からのimport) #16

Open yuto-kakitani opened 6 years ago

yuto-kakitani commented 6 years ago

__init.pyの必要性や上位階層からのimportを行う際の注意点がよくまとまったサイトをあげておきます。 上位階層からのimportを行うファイルのテストを行う際の注意点などもあります。

import まとめ https://qiita.com/karadaharu/items/37403e6e82ae4417d1b3

上位階層からのimport http://d.hatena.ne.jp/chlere/20110618/1308369842

yasudadesu commented 6 years ago

ちなみにですが2つのサイト見ましたが基本的にjupyterで実行することを前提としない場合はsys使えば難しいこと考えなくても大丈夫です (sys.path.append(os.path.dirname(__path__))とかだったかな多分...)

追記: こっちでしたsys.path.append(os.path.pardir) 一応jupyterディレクトリの中のsys.path.append('../..')という超荒技もあります

yuto-kakitani commented 6 years ago

それはテストをするときに、ってことですか?

yasudadesu commented 6 years ago

テストという言葉がunittestとかという話なら、多分jupyter使わないのでモジュール化をしっかりしておけば動く気がします コードの動作確認としてのテストという意味でしたら、sys.path.appendとかでごりおしするのがいいかなーと個人的には思います(実際そうしている人も多いようです)

yuto-kakitani commented 6 years ago

後者の意味で考えていました。 なるほど、了解しました

Resesh commented 6 years ago

サイト確認しました、sys.path.append(os.pardir)はゼロから始めるdeeplearningで見覚えあるのでよく使われるんだろうと思います(os.path.pardirでもどっちでも良さそうでした)