質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

4015閲覧

モジュールの保管場所

akasatan

総合スコア2

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/05/23 04:58

生成Deep learningの第三章について
https://github.com/davidADSP/GDL_code
これらのモジュールをzipファイルでダウンロードし、解凍して以下のように保存しました。
イメージ説明

03_01_autoencoder_train_.ipynbを開き、以下のように打ち込みました。
コード

import os
import utils

from utils.loaders import load_mnist
from models.AE import Autoencoder


エラーコード

ModuleNotFoundError Traceback (most recent call last)
<ipython-input-1-93c5bafff246> in <module>
2 import utils
3
----> 4 from utils.loaders import load_mnist
5 from models.AE import Autoencoder

ModuleNotFoundError: No module named 'utils.loaders'


OSはWindows10です。
https://github.com/davidADSP/GDL_codeはcloneでダウンロードしようとしたのですが、うまくいかなかったので、zip形式でダウンロードしました。
なにをすればいいのかよくわかりません。
utilsの中にloadersが入っているのにうまく作動しないのはなぜでしょうか…
どのように改善すればよいでしょうか。
言葉の意味がよくわかっていないため、文章が伝わりづらいかもしれません…
何卒、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2021/05/23 05:15

試してみましたが「ModuleNotFoundError: No module named 'utils.loaders'」は発生しませんでした。 カレントディレクトリは”GDL_code-master”ですよね?
akasatan

2021/05/23 05:35

少々お待ちください。確認いたします
jbpb0

2021/05/23 05:41

カレントディレクトリがどこかを調べて、質問の画像のディレクトリと違う場合は、そこをカレントディレクトリにしてみてください 参考 https://note.nkmk.me/python-os-getcwd-chdir/
akasatan

2021/05/23 05:47

jbpb0さん、ありがとうございます。私自身、カレントディレクトリがよくわかっておりませんので、調べてみます。確認いたします。
akasatan

2021/05/23 06:03

import os os.getcwd() を03_01_autoencoder_trainで入力いたしました。 Out[1]:'C:\\Users\\user name(僕の名前)\\GDL_code-master' が返ってきました。 この操作でカレントディレクトリを確認できていますでしょうか。
meg_

2021/05/23 06:25

カレントディレクトリは合っているようですね。であれば「ModuleNotFoundError: No module named 'utils.loaders'」のエラーは発生しないはずですがおかしいですね。
akasatan

2021/05/23 06:55

もう一度、zipファイルをダウンロードしなおしても意味がないでしょうか。また、jupyterがlocalhostとしているのは関係ないでしょうか。http://localhost:数字/tree/GDL_code-masterとなっています。
jbpb0

2021/05/23 07:40 編集

03_01_autoencoder_train.ipynb の先頭に下記を追加して実行したら、どのように表示されますでしょうか? import os print(os.listdir('./utils'))
akasatan

2021/05/23 07:40 編集

jbpb0さん、ありがとうございます。 ['callbacks.py', 'loaders.py', 'write.py']と出力されました。
jbpb0

2021/05/23 08:28 編集

> ['callbacks.py', 'loaders.py', 'write.py']と出力されました。 大丈夫ですね エラーが出る行をコメント化(行頭に「#」を付ける)したら、次の from models.AE import Autoencoder は、正常に実行できますか?
akasatan

2021/05/23 08:34

以下、入力になります。 import os import utils #from utils.loaders import load_mnist from models.AE import Autoencoder エラーコードが出てしまいます。 ModuleNotFoundError Traceback (most recent call last) <ipython-input-10-e56b95deac59> in <module> 3 4 #from utils.loaders import load_mnist ----> 5 from models.AE import Autoencoder ~\GDL_code-master\models\AE.py in <module> 7 from keras.utils import plot_model 8 ----> 9 from utils.callbacks import CustomCallback, step_decay_schedule 10 11 import numpy as np ModuleNotFoundError: No module named 'utils.callbacks'
jbpb0

2021/05/23 08:53

models.AE」は「No module named」とならないので、「models」ディレクトリの「AE.py」は読めてますね > No module named 'utils.callbacks' 「utils」ディレクトリの「callbacks.py」は、「loaders.py」と同様に読めてませんね 「models」ディレクトリは大丈夫なのに、「utils」ディレクトリはダメなようです 理由は分からないけど githubから一式全部zipでダウンロードし直して、別の場所に展開してから、そちらで試してみてください ところで、 import utils は、何で付けてるのですか? https://github.com/davidADSP/GDL_code/blob/master/03_01_autoencoder_train.ipynb には、その行はありませんけど この質問のエラーには関係ないとは思いますが、念のために、githubから再ダウンロードして展開してから試す際は、一番最初は「03_01_autoencoder_train.ipynb」は内容そのまま触らずに実行してみてください
jbpb0

2021/05/23 09:01

> jupyterがlocalhostとしているのは関係ないでしょうか。http://localhost:数字/tree/GDL_code-masterとなっています。 それは大丈夫です
akasatan

2021/05/23 09:02

ありがとうございます。今一度、githubからダウンロードしなおします。
akasatan

2021/05/23 09:06

>ところで、 import utils は、何で付けてるのですか? モジュールのインポートができてないのかなと思いました(utilsをモジュールと呼ぶかはわからないですが)。やみくもにやってしまいました。
akasatan

2021/05/23 09:52

zipファイルでもう一度ダウンロードし、すべて展開したのですが、同じエラーコードが出てしまいます。入力したコード import os from utils.loaders import load_mnist from models.AE import Autoencoder エラーコード ModuleNotFoundError Traceback (most recent call last) <ipython-input-2-01cd3755b1e5> in <module> 1 import os 2 ----> 3 from utils.loaders import load_mnist 4 from models.AE import Autoencoder ModuleNotFoundError: No module named 'utils.loaders' 入力したコード import os #from utils.loaders import load_mnist from models.AE import Autoencoder エラーコード ModuleNotFoundError Traceback (most recent call last) <ipython-input-1-72a5f21df836> in <module> 2 3 #from utils.loaders import load_mnist ----> 4 from models.AE import Autoencoder ~\Downloads\GDL_code-master (2)\GDL_code-master\models\AE.py in <module> 7 from keras.utils import plot_model 8 ----> 9 from utils.callbacks import CustomCallback, step_decay_schedule 10 11 import numpy as np jbpb0さん、たびたび申し訳ございません。 やはりutilsモジュールのインポートができません。 カレントディレクトリは 'C:\\Users\\iuser name\\Downloads\\GDL_code-master (2)\\GDL_code-master' です。 utilsモジュールに問題があるのでしょうか。
jbpb0

2021/05/23 10:00

何でしょうね?? 「utils」ディレクトリの「loaders.py」を「03_01_autoencoder_train.ipynb」と同じディレクトリにコピーして、 from loaders import load_mnist を実行したら、エラーになりますか?
jbpb0

2021/05/23 10:17 編集

「utils」が、他の何かと被ってるのかも 下記を実行した結果を教えてください import utils dir(utils) print(utils.__path__) print(utils.__file__)
akasatan

2021/05/23 10:18

jbpb0さん、承知いたしました。確認致します。
akasatan

2021/05/23 10:53

>「utils」ディレクトリの「loaders.py」を「03_01_autoencoder_train.ipynb」と同じディレクトリにコピーして、 from loaders import load_mnist を実行したら、エラーになりますか? import os from loaders import load_mnist from models.AE import Autoencoder ModuleNotFoundError Traceback (most recent call last) <ipython-input-3-40c37761298c> in <module> 2 3 from loaders import load_mnist ----> 4 from models.AE import Autoencoder ~\Downloads\GDL_code-master (2)\GDL_code-master\models\AE.py in <module> 7 from keras.utils import plot_model 8 ----> 9 from utils.callbacks import CustomCallback, step_decay_schedule 10 11 import numpy as np ModuleNotFoundError: No module named 'utils.callbacks' >「utils」が、他の何かと被ってるのかも import utils dir(utils) print(utils.__path__) print(utils.__file__) ----------------------------------------------------------------------------- ['C:\\Users\\user name\\anaconda3\\lib\\site-packages\\utils'] C:\Users\user name\anaconda3\lib\site-packages\utils\__init__.py となりました。
jbpb0

2021/05/23 11:22

「utils」ディレクトリに置かず from loaders import load_mnist とすればエラーにならないことと、 > print(utils.__path__) ['C:\\Users\\user name\\anaconda3\\lib\\site-packages\\utils'] から、 「C:\\Users\\user name\\anaconda3\\lib\\site-packages\\utils」 の存在が邪魔をしていて、「utils」ディレクトリ内のファイルがimportできない可能性があります 「C:\\Users\\user name\\anaconda3\\lib\\site-packages\\utils」 を削除(condaかpipでuninstall)したら直るかもしれませんが、これが質問者さんにとって必要なものかもしれないので、素性が分からないと迂闊には削除できません これを入れた心当たりはありますか? (自分で直接入れてなくても、他の何かを入れた時に入ったかもしれませんが) あるいは、「GDL_code」側の「utils」のディレクトリ名を変えてしまうか ただし、「GDL_code」の全てのコード内の「utils」を、それに合わせて変更する必要があります
akasatan

2021/05/23 11:57

ありがとうございます。再度、確認いたします。
akasatan

2021/05/23 13:30

jbpb0さん、utilsの名前をutilに変えるとうまくいきました。 >C:\\Users\\user name\\anaconda3\\lib\\site-packages\\utils」 を削除(condaかpipでuninstall)したら直るかもしれません。 こちらなのですが、入れたことをおぼえておりません。utilsを確認したのですが削除するのは不安が残るので、名前を変更する方法でやりたいと思います。 親身に教えていただきありがとうございました。
guest

回答1

0

ベストアンサー

カレントディレクトリがどこかを調べて、質問の画像のディレクトリと違う場合は、そこをカレントディレクトリにしてみてください

参考
Pythonでカレントディレクトリを取得、変更(移動)

 
上記を行なってもダメなら、「utils」が他の何かと被っていて、それが邪魔をしている可能性があります
下記を実行して、どこか全く別のディレクトリパスが表示されないか、確認してみてください

python

1import utils 2dir(utils) 3print(utils.__path__) 4print(utils.__file__)

投稿2021/05/25 10:24

jbpb0

総合スコア7653

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問