自作モジュール間でインポートしようとすると、実行するディレクトリや対話モードか否かによってインポートエラーが発生することがあります。
よって、ちゃんと動くにはどうすればいいかを実験しています。
(マニュアルや解説書を読んでも、「こうすればいい」というのがありません)
以下のようなディレクトリ構成にします。
work ├── sub1 │ └── hello.py └── sub2 └── book.py
Pythonプログラムは以下の通りです。
■hello.py
def main(): print('Hello!') if __name__ == '__main__': main()
■book.py
class Book: def info(self): print('This is a book.')
(実行結果) カレントディレクトリをworkにして実行します。
$ python sub1/hello.py Hello!