質問: Cons.of(5, 3, 6, 7, 2) # 連結リスト(Consリスト)で用意 print(fun4(d)) ``` エラー文 > > File "Functional.py", line 4, in > > from my.Cons import Cons # 連結リストを使う > > ImportError: No module named my.Cons > > > サンプルコードが記載されている教科書には > > Consモジュールで定義さレた連結リスト→Consリスト(本書特有の呼び方) > > > と記載されていてます。 ファイル構成 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/5271d8263362605fc20ba7069c6712f9.png) ``` sys.path.append('../') ``` ここのパスを変えればいいのではないかと思っているのですがなかなかうまくいかず苦戦しております。 ご教授いただけたらと思います。
回答: ``` sys.path.append('../') ``` 上記の表現は `python` コマンドを実行したディレクトリーからの path として扱われます おそらく`第1章`ディレクトリー内に `Functional.py` があると思いますが、 `python` コマンドも`第1章`ディレクトリー内で実行しましょう: ``` $ cd 第1章 $ python Functional.py 71.4;85.7;100.0 71.4;85.7;100.0 71.4;85.7;100.0 Traceback (most recent call last): File "Functional.py", line 39, in d = Cons.of(5, 3, 6, 7, 2) # 連結リスト(Consリスト)で用意 AttributeError: type object 'Cons' has no attribute 'of' ``` 上記は `Functional.py` の実装がこちらでわからなかったのでエラーが発生していますが、 少なくとも 4 行目ではエラーが出なくなっています 追記 利用している Python のバージョンが 2.* の場合は、 `my` ディレクトリー内に `__init__.py` というファイルを作成する必要があります (ファイルの中身は空で構いません) ``` Python_勉強 +---my | +---__init__.py | +---Cons.py | +---第1章 +---Functional.py ``` 現在利用している Python のバージョンは次のコマンドで確認できます: ``` $ python --version Python 3.8.3 ``` 上記の例は Python バージョンが 3.* ですので、`__init__.py` は必要ではありません