ファイル構造における.の意味がわからない

コメントからすると、質問のコードは以下の説明のようなことが起きるのを回避するようになっています。
なので、質問者さんの状況が発生するのの説明としては不適切でした。

いちおう残してはおきます。

以下、この件については的外れでした

pythonのimportの指定の方法は初学者がつまづくポイントの一つです。

まずは、チュートリアルです。 わかりやすく書いてあります。
https://docs.python.org/ja/3/tutorial/modules.html
こちらは、細かい説明です。
https://docs.python.org/ja/3/reference/import.html
いろいろな情報がまとめて説明されてるのでわかりにくいと思いますが、何度か読むと理解できるでしょう。

簡単に説明してみます。
パッケージ内以外では、インポートのパスの指定は、モジュール検索パス(Module Search Path)にあるパスからの相対パスとみなされます。以下のところに説明がありますが、
(https://docs.python.org/ja/3/tutorial/modules.html#the-module-search-path)
ここにあるように、スクリプトを指定した場合はモジュール検索パスにはカレントパスは含まれていません。
なので、カレントパスから見て「common.gridworld」にあるモジュールはみつからないことになります。

質問のカレントディレクトリでインポートできるようにするには、環境変数PYTHONPATHにそのディレクトリを含mるなどの工夫が必要になります。

このcommon.gridworldの ”.” はなんの意味があるのでしょうか?

読み込まれるはずなのに読みこまれないのでこの質問なのでしょうけれど、読み込もうとしているモジュールの階層を示していて、モジュールが格納それているディレクトリの区切り(linuxなどのUNIX系であれば「/」、Windowsであれば「\」のこと)を表わします。

コメントを投稿

0 コメント