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

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

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

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

import

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

Python

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

Q&A

1回答

4142閲覧

Pythonのimportエラーを直したい

piozum

総合スコア11

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

import

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

Python

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

0グッド

0クリップ

投稿2021/06/21 13:41

前提・実現したいこと

前提:Windows10Home、Anaconda、Visual Studio Code。Anacondaのbase環境下で行っていた。それまでは仮想環境は作っていなかった。
実現したいこと:importエラーをなくすこと

発生している問題・エラーメッセージ

vscodeでpythonを使い、簡単なプログラムを組んでいました。
その中で設定をいじったせいか、sklearn等のライブラリがimportできない状態になってしまいました。
今までは正常にimportできていました。

例外が発生しました: ModuleNotFoundError No module named 'sklearn' File "C:\Users(ユーザー名)\train_mlp.py", line 3, in <module> from sklearn.model_selection import train_test_split

該当のソースコード

import numpy as np, h5py import pickle from sklearn.model_selection import train_test_split import sklearn.metrics as metrics import matplotlib.pyplot as plt import keras from keras.models import Sequential from keras.layers import Dense, Dropout from keras.optimizers import RMSprop # 分類するラベルの数 --- (*1) nb_classes = 4 # データベースの読込 --- (*2) data = pickle.load(open("text/genre.pickle", "rb")) y = data[0] # ラベル x = data[1] # TF-IDF # ラベルデータをone-hotベクトルに直す --- (*3) y = keras.utils.np_utils.to_categorical(y, nb_classes) in_size = x[0].shape[0] # 学習用とテスト用を分ける --- (*4) x_train, x_test, y_train, y_test = train_test_split(np.array(x), np.array(y), test_size=0.2) # MLPモデル構造を定義 --- (*5) model = Sequential() model.add(Dense(512, activation='relu', input_shape=(in_size,))) model.add(Dropout(0.2)) model.add(Dense(512, activation='relu')) model.add(Dropout(0.2)) model.add(Dense(nb_classes, activation='softmax')) # モデルをコンパイル --- (*6) model.compile( loss='categorical_crossentropy', optimizer=RMSprop(), metrics=['accuracy']) # 学習を実行 --- (*7) hist = model.fit(x_train, y_train, batch_size=128, epochs=20, verbose=1, validation_data=(x_test, y_test)) # 評価する ---(*8) score = model.evaluate(x_test, y_test, verbose=1) print("正解率=", score[1], 'loss=', score[0]) # 重みデータを保存 --- (*9) model.save_weights('./text/genre-model.hdf5') # 学習の様子をグラフへ描画 --- (*10) plt.plot(hist.history['accuracy']) plt.plot(hist.history['val_accuracy']) plt.title('Accuracy') plt.legend(['train', 'test'], loc='upper left') plt.show()

試したこと

1.Anacondaの仮想環境を作った。
2.Vscodeのインタープリタを仮想環境に参照させた。
3.AnacondaのPathを最優先(一番上)に持ってきた。
4.Anacondaをアンインストールし、再インストールした。
5.conda update --all
6.conda clear --all

補足情報(FW/ツールのバージョンなど)

・Jupyternotebookでは問題なくimportできる。
・"text/genre.pickle"等のファイルは存在しています。import文以降のプログラムにエラーは出ていません。
・WindowsソフトのPythonはダウンロードしていません。Anacondaだけです。
・importエラーが起きた当初はnumpyもエラーだったが、これは途中で直った。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/06/21 15:54

モジュールのインストールはしていますか? またインストールしている場合はどのようにインストールしましたか? もしVSCodeのターミナルでインストールしてもうまくいってない場合はcondaの仮想環境にちゃんと入れていない可能性があります。
piozum

2021/06/22 00:27

ありがとうございます。 VSCodeのターミナルでは試していなかったので、今しました。 C:\Users\(ユーザー名)> conda install scikit-learn C:\Users\(ユーザー名)\anaconda3\envs\py37> conda install scikit-learn のどちらも試しましたが、出力は # All requested packages already installed. で同じとなりました。 VSCodeのターミナルで conda activate py37 activate py37 を試みましたが、エラーが出ました。 # >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<< Traceback (most recent call last): File "C:\Users\KAZU\anaconda3\lib\site-packages\conda\cli\main.py", line 140, in main return activator_main() File "C:\Users\KAZU\anaconda3\lib\site-packages\conda\activate.py", line 1210, in main print(activator.execute(), end='') UnicodeEncodeError: 'cp932' codec can't encode character '\xa5' in position 346: illegal multibyte sequence `$ C:\Users\KAZU\anaconda3\Scripts\conda-script.py shell.powershell activate py37` environment variables: CIO_TEST=<not set> CONDA_EXE=C:\Users\KAZU\anaconda3\Scripts\conda.exe CONDA_ROOT=C:\Users\KAZU\anaconda3 CURL_CA_BUNDLE=<not set> GOPATH=C:\Users\KAZU\Documents\gocode HOMEPATH=\Users\KAZU MOZ_PLUGIN_PATH=C:\Program Files (x86)\FOXIT SOFTWARE\FOXIT READER\plugins\ PATH=C:\Users\KAZU\anaconda3;C:\Users\KAZU\anaconda3\Library\mingw-w64\bin; C:\Users\KAZU\anaconda3\Library\usr\bin;C:\Users\KAZU\anaconda3\Librar y\bin;C:\Users\KAZU\anaconda3\Scripts;C:\Users\KAZU\anaconda3\bin;C:\P rogram Files\Java\jdk1.8.0_271¥bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Apple\Apple Application Support;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\WINDOW S\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\Win dowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Fujitsu\FJAgent\Core\bin;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\dotnet\;C:\Program Files\MATLAB\R2020a\bin;C:\Program Files\MATLAB\R2019a\bin;C:\Program Files\Java\jdk1.8.0_271\bin;C:\User s\KAZU\AppData\Local\Micros;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\ System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\S ystem32\OpenSSH\;C:\Program Files\Docker\Docker\resources\bin;C:\Progr amData\DockerDesktop\version-bin;C:\Program Files\Git\cmd;C:\Users\KAZ U\AppData\Local\Microsoft\WindowsApps;C:\Users\KAZU\AppData\Local\Prog rams\Microsoft VS Code\bin;C:\Users\KAZU\anaconda3;C:\Program Files\MeCab\bin;C:\Users\KAZU\AppData\Local\Microsoft\WindowsApps; PSMODULEPATH=C:\Users\KAZU\Documents\WindowsPowerShell\Modules;C:\Program Files\Win dowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modu les REQUESTS_CA_BUNDLE=<not set> SSL_CERT_FILE=<not set> VBOX_MSI_INSTALL_PATH=C:\Program Files\Oracle\VirtualBox\ active environment : None user config file : C:\Users\KAZU\.condarc populated config files : C:\Users\KAZU\.condarc conda version : 4.10.1 conda-build version : 3.21.4 python version : 3.8.10.final.0 virtual packages : __win=0=0 __archspec=1=x86_64 base environment : C:\Users\KAZU\anaconda3 (writable) conda av data dir : C:\Users\KAZU\anaconda3\etc\conda conda av metadata url : https://repo.anaconda.com/pkgs/main channel URLs : https://repo.anaconda.com/pkgs/main/win-64 https://repo.anaconda.com/pkgs/main/noarch https://repo.anaconda.com/pkgs/r/win-64 https://repo.anaconda.com/pkgs/r/noarch https://repo.anaconda.com/pkgs/msys2/win-64 https://repo.anaconda.com/pkgs/msys2/noarch package cache : C:\Users\KAZU\anaconda3\pkgs C:\Users\KAZU\.conda\pkgs C:\Users\KAZU\AppData\Local\conda\conda\pkgs envs directories : C:\Users\KAZU\anaconda3\envs C:\Users\KAZU\.conda\envs C:\Users\KAZU\AppData\Local\conda\conda\envs platform : win-64 user-agent : conda/4.10.1 requests/2.25.1 CPython/3.8.10 Windows/10 Windows/10.0.19042 administrator : False netrc file : None offline mode : False An unexpected error has occurred. Conda has prepared the above report. If submitted, this report will be used by core maintainers to improve future releases of conda. Would you like conda to send this report to the core maintainers? これは、VSCode上で仮想環境に入れていないということでしょうか?
退会済みユーザー

退会済みユーザー

2021/06/22 01:15

なんかおかしなことになってますね。 仮想環境に入れてないです。 インストール時に「All requested packages already installed.」となっているのでbase環境のままになってます。 VSCodeのウィンドウ左下にあるpythonの表示が仮想環境のpythonになっているか確認するのと、VSCodeのデフォルトのシェルをコマンドプロンプトに切り替えてみてください。
piozum

2021/06/28 12:14

VSCodeの左下は仮想環境のPythonになっている状態で、デフォルトのシェルをコマンドプロンプトに切り替えました。そのうえで、以下のコードを実行しました。 ```ここに言語を入力 import sys import sklearn print(sys.executable) print(sklearn.__version__) ``` そうしても、エラーが出てしまいます。 <エラー> 例外が発生しました: ModuleNotFoundError No module named 'sklearn' File "C:\Users\KAZU\hello.py", line 2, in <module> import sklearn 何が間違っているかがわからないのですが、最初からインストールし直す方法で解決できますでしょうか。
guest

回答1

0

使っているPythonにsklearnがインストールされていないのでしょう。

VscodeとJupyternotebookで以下を実行して比べてみてください。

python

1import sys 2print(sys.executable)

投稿2021/06/21 13:55

ppaul

総合スコア24670

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

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

piozum

2021/06/21 14:21

ご回答ありがとうございます。 実行結果は以下のようになりました。 Vscode:C:\Users(ユーザー名)\anaconda3\envs\py37\python.exe Jupyter:C:\Users(ユーザー名)\anaconda3\python.exe Vscodeではインタープリタが仮想環境なので実行結果が違いますが、これは適切な表示なのでしょうか。
ppaul

2021/06/21 14:55

py37の方にはsklearnがインストールされていないのでしょう。 C:\Users(ユーザー名)\anaconda3\envs\py37\python.exe -m conda install scikit-learn でインストールできると思います。
piozum

2021/06/21 23:12

(py37) C:\Users(ユーザー名)\anaconda3\envs\py37>conda install scikit-learn とした場合、 Proceed...? =>y と入力すると、 ClobberError: The package 'defaults/win-64::scipy-1.6.2-py37h66253e8_1' cannot be installed due to a path collision for 'lib/site-packages/scipy/version.py'. This path already exists in the target prefix, and it won't be removed by an uninstall action in this transaction. The path is one that conda doesn't recognize. It may have been created by another package manager. というエラーが無数に出てきました。 逆に、base下で (base) C:\Users(ユーザー名)\anaconda3\envs\py37>conda install scikit-learn をすると、 # All requested packages already installed. と表示されました。 念の為、 conda clean --all => conda update --all というClobberErrorの対処をして再びインストールを試みましたが、ClobberErrorが消えませんでした。 申し訳ありませんが、アドバイスお願いします。
ppaul

2021/06/22 03:57

It may have been created by another package manager. というのは、pipとか使って良くわからないものを入れてあるので面倒見切れません、というメッセージです。理由を知りたければ以下を読んでください。 https://teratail.com/questions/344641#reply-473608 試行錯誤すれば治るかもしれませんが、初心者の方には難しいでしょう。 一度、py37を削除して入れなおした方が早いでしょう。 conda remove -n py37 --all conda create -n py37 python=3.7 anaconda これで、scikit-learnなども入った環境が構築されます。
退会済みユーザー

退会済みユーザー

2021/06/22 04:15

@ppaulさん > conda create -n py37 python=3.7 anaconda これだとanacondaのモジュール全部入るんでインストールの手間省けるけど仮想環境作成する意味なくなっちゃいませんか? あと > C:\Users(ユーザー名)\anaconda3\envs\py37\python.exe -m conda install scikit-learn 毎回これやるの大変だしちゃんと仮想環境に入ってからconda install した方がいいんじゃないんですかね?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問