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

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

ただいまの
回答率

90.60%

  • Python

    7512questions

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

  • Python 3.x

    5921questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

ModuleNotFoundError: No module named 'xxxx'

受付中

回答 2

投稿

  • 評価
  • クリップ 2
  • VIEW 2,079

terak31

score 6

お世話になります。phthon初心者です。

pyファイルを動かそうとコマンドプロンプトで
abc.py を打ったところエラーが出ました。

ModuleNotFoundError: No module named 'xxxx' です。

Traceback (most recent call last):
  File "C:\abc.py", line 6, in <module>
    import xxxx
ModuleNotFoundError: No module named 'xxxx'

xxxxはモジュール名なので、エラーでgoogleで検索をかけました。

https://web.plus-idea.net/2017/05/python-import-error-no-module-name/

すると、”これはそのようなモジュールが見つけられないことを示している。”
そのため対処法としてパスを与えてあげればよい という事がわかりました。

まずxxxxがインストールされている場所を確認しました。以下にありました。

C:\Users\ユーザ名が入る\AppData\Local\Programs\Python\Python36\Lib\site-packages

実行したABC.pyは自分で作成したフォルダ場所に格納しています。
C:\pythonfiles\abc

ちなみにアナコンダは以下にあります。
C:\ProgramData\Anaconda3\Lib\site-packages

次にディレクトリがどこに格納されているかを確認する為にpythonコマンドで

>>import sys
>>print(sys.path)


を入力した所以下のように表示されました。

['', 'C:\\ProgramData\\Anaconda3\\python36.zip',
 'C:\\ProgramData\\Anaconda3\\DLLs', 
'C:\\ProgramData\\Anaconda3\\lib', 
'C:\\ProgramData\\Anaconda3', 
'C:\\ProgramData\\Anaconda3\\lib\\site-packages', 
'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32', 
'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32\\lib', 
'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\Pythonwin']

そこで

import sys
sys.path.append("C:/Users/ユーザ名が入る/AppData/Local/Programs/Python/Python36/Lib/site-packages")

を叩き、printコマンドで上記ディレクトリがある事を確認しました。
C:/Users/ユーザ名が入る/AppData/Local/Programs/Python/Python36/Lib/site-packages"

しかし、ctrl+shift+zでpythonを終了させたからか、コマンドプロンプトで
abc.py を打ったところエラーが出ます。同じエラーで
ModuleNotFoundError: No module named 'xxxx' です。

ディレクトリを確認しましたが、

>>import sys
>>print(sys.path)

C:/Users/ユーザ名が入る/AppData/Local/Programs/Python/Python36/Lib/site-packages"
は反映されておりませんでした。

ModuleNotFoundError: No module named 'xxxx' のエラーをなくすには パスを追加すればなおるのでしょうか?
具体的にどのようにやればいいのでしょうか?

宜しくお願いします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • YouheiSakurai

    2018/05/03 02:34

    長いです。もう少し要点をまとめた質問にした方が良いと思います。

    キャンセル

  • キャンセル

回答 2

+1

abcはシステムに元々あるモジュールの名前と衝突します。基本的に使っちゃ駄目なファイル名です。(他にtest.pyなども同様に使っちゃ駄目)

sys.path.append()は一回きりとか特定ソース内だけでパスを追加したいときに使います。この方法で行くなら毎回プログラムの先頭に書いてあげる必要があります。

毎回書かなくても良い方法もありますが、それは必要になったら調べて頂くとして。今回は恐らくそうする必要はありません。anaconda側から使いたいモジュールをインストールしてあげるのが正しい対処と思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/03 00:35 編集

    >anaconda側から使いたいモジュールをインストールしてあげるのが正しい対処と思います。

    現状anaconda側に、もともとのパイソンの site-packages を全部コピーしました。(重複ファイルのみコピーを飛ばしました)
    この対応で正しい対処という事でしょうか?もともとのパイソンがわのsite-packagesフォルダの中身は全て消去でよろしいですか?

    キャンセル

  • 2018/05/03 00:39

    anacondaのパッケージ管理システムから入れてください。コピーしたファイルは元に戻しておいてください・・・(最初からあったファイルは絶対に消さないで・・・)
    ある程度メジャーなライブラリはcondaで入りますし、condaで駄目なときはanaconda上のpipで入れる方法で入れてください。
    https://qiita.com/t2y/items/2a3eb58103e85d8064b6
    https://qiita.com/mckeeeen/items/d4cbe4a16a102157f40c

    キャンセル

  • 2018/05/03 00:42

    基本的にパッケージ管理はパッケージ管理システムを使って行います。site-packages以下を直接手でいじったりすることは慎むべきです

    キャンセル

  • 2018/05/03 00:44

    なるほど。ではsite-packagesは元に戻し
    anacondaを正としてpipで入れればオッケーですか?

    キャンセル

  • 2018/05/03 00:52

    condaで入るかまずは試してみてください。condaで入らないときはanaconda上のpipで入れるしかありませんが、condaで入るならその方が安全なはずです

    キャンセル

  • 2018/05/03 00:59

    なるほど。condaで一覧表示して、検索して、インストですね。入らなかった場合はanaconda上のpipとありますが理解できません。初心者でごめんなさい。コマンドプロンプト上でphthonを叩いて$ conda list ではないのでしょうか?
    anaconda上のpipのコマンドは

    >$ pip install <パッケージ名>
    >を実行すると、デフォルトの環境にインストールされてしまいAnaconda環境で使うことができません。

    とあるので使ってはいけないのかと思いました。

    キャンセル

  • 2018/05/03 01:02

    二番目に貼ったページをもう一回よく読み直してください・・・anaconda環境をactivateすれば使えると書いてあります

    キャンセル

  • 2018/05/03 01:05

    丁寧にありがとうございます。
    そもそもanacondaとcondaの違いがわかりません。
    パイソンっていう言語に対して、様々なモジュールがあります。便利なモジュールですが1つ1つインストするのは面倒なので、anacondaってものがあると、まとめてパッケージとしてインストされるという認識です。

    condaってなんですか?すみません。

    キャンセル

  • 2018/05/03 01:07

    >>> conda info -e
    File "<stdin>", line 1
    conda info -e
    ^
    SyntaxError: invalid syntax
    >>>

    とエラーが出てしまいます。初心者ですみません。

    キャンセル

  • 2018/05/03 01:09

    base * C:\ProgramData\Anaconda3
    C:\Users\ユーザ名>

    コマンドプロンプトで上記が出たのですが、以下の意味がわかりません。
    $ source activate <インストールしたいAnaconda環境>

    キャンセル

  • 2018/05/03 01:12

    C:\Users\keisuke>activate <"C:/ProgramData/Anaconda3">
    コマンドの構文が誤っています。

    どこが間違っているのでしょうか?

    キャンセル

-1

ファイル名をabc.py以外にするとどうなりますか。例えばabd.pyとか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/02 19:24

    名前を変えて コマンドプロンプトで python adc1.py をうったところ いきなり秀丸が開きました。
    コマンドプロンプトにエラーはでておりません。

    キャンセル

  • 2018/05/02 19:27

    ファイル名称をもどし、コマンドプロンプトを再起動しましたが、やはり同じエラーが出てしまいます。

    キャンセル

  • 2018/05/02 19:28

    import sys
    sys.path.append("C:/Users/ユーザ名が入る/AppData/Local/Programs/Python/Python36/Lib/site-packages")

    このコマンドを打った直後は
    >>import sys
    >>print(sys.path)

    でパスが追加されているのですが、pythonをシャットダウンすると、パスが追加されていないのです

    キャンセル

  • 2018/05/02 19:30

    また試しに①のディレクトリのファイルを ②に格納したところ 正常に動きました。

    C:\Users\ユーザ名\AppData\Local\Programs\Python\Python36\Lib\site-packages

    ②アナコンダディレクトリ
    C:\ProgramData\Anaconda3\Lib\site-packages

    しかし、これからも①ディレクトリを使用する為、①ディレクリのパスを追加したいです。

    キャンセル

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

  • ただいまの回答率 90.60%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Python

    7512questions

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

  • Python 3.x

    5921questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。