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

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

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

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

import

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

Python

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

Q&A

1回答

2846閲覧

jupyter notebookで決定木を表示するためのpydotplusのインポートができない

kitakuma8315

総合スコア0

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

import

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

Python

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

0グッド

0クリップ

投稿2021/10/22 04:04

前提・実現したいこと

jupyter notebookで決定木を表示するために、pydotplusをインポートしようとしましたが
ModuleNotFoundError: No module named 'pydotplus' と表示されてしまいます。

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

ModuleNotFoundError Traceback (most recent call last)
<ipython-input-3-948f31f07e79> in <module>
7
8 # 決定木モデル描画のためのモジュール
----> 9 import pydotplus
10 import io
11 # from sklearn.externals.six import StringIO

ModuleNotFoundError: No module named 'pydotplus'

該当のソースコード

import pydotplus

試したこと

pip list
pip show pydotplus

Name: pydotplus
Version: 2.0.2
Summary: Python interface to Graphviz's Dot language
Home-page: http://pydotplus.readthedocs.org/
Author: PyDotPlus Developers
Author-email: carlos@jenkins.co.cr
License: UNKNOWN
Location: c:\users\・・・・・・・\lib\site-packages
Requires: pyparsing
Required-by:
Note: you may need to restart the kernel to use updated packages.
⇒インストールはされているが、アクティベーションが出来ていない?

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

他の方が質問されている様な、Python環境を複数インストールした事はなく
この度、初めてインストールしました。なので初心者です。

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

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

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

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

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

guest

回答1

0

  • Python環境を複数インストールした事はなく

以下の方法で、それを確認してみましょう。

まずJupyterのPythonを確認します。
Jupyter notebookのセルに以下を入力してrunしてみます。

python

1import sys 2print(sys.executable)

表示されたパス名がJupyterが使っているPythonです。

次にpip listを実行したのと同じ画面で以下を実行します。

python

すると三つの不等号からなるプロンプトが表示されます。そこで、

python

1import sys 2print(sys.executable)

を実行します。
表示されたパス名がpipでpydotplusをインストールしているPythonです。

pipでpydotplusをインストールしているPythonとJupyterが使っているPythonが同じではなければ、以下のようにしてpydotplusをインストールしましょう。

Anacondaでない場合には

shell

1Jupyterが使っているPythonのパス名 -m pip install pydotplus 2

Anacondaの場合にはpipを使うと問題が起こる可能性がありますので、以下でインストールしてください。

shell

1Jupyterが使っているPythonのパス名 -m conda install pydotplus 2

pipでpydotplusをインストールしているPythonとJupyterが使っているPythonが同じであれば、私にはわからない不思議なことが起きています。他の方に意見を聞いてください。

投稿2021/10/22 05:05

ppaul

総合スコア24670

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

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

kitakuma8315

2021/10/22 09:52

> まずJupyterのPythonを確認します。 > Jupyter notebookのセルに以下を入力してrunしてみます。 ⇒c:\users\1111111\python\py38\scripts\python.exe > 次にpip listを実行したのと同じ画面で以下を実行します。 ⇒jupyter 上でpip listしていたので、Pythonをインストールした時の  仮想環境から、>>>を起動して、以下を実施 >>> import sys >>> print(sys.executable) ⇒C:\Users\111111\AppData\Local\Programs\Python\Python38\python.exe > pipでpydotplusをインストールしているPythonと > Jupyterが使っているPythonが同じではなければ >Jupyterが使っているPythonのパス名 -m pip install pydotplus > pydotplusをインストール ⇒ c:\users\11111111\python\py38\scripts\python.exe -m pip install pydotplus  ここが合っているのか不安ですが、結果は以下の通り。 ⇒Requirement already satisfied: pydotplus in    c:\users\1111111\python\py38\lib\site-packages (2.0.2)  Requirement already satisfied: pyparsing>=2.0.1 in    c:\users\1205544\python\py38\lib\site-packages (from pydotplus) (2.4.7) 試しにこちらも実行してみました。 C:\Users\111111\AppData\Local\Programs\Python\Python38\python.exe ⇒ERROR: Exception: Traceback (most recent call last): File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_internal\cli\base_command.py", line 180, in _main status = self.run(options, args) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_internal\cli\req_command.py", line 204, in wrapper return func(self, options, args) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_internal\commands\install.py", line 318, in run requirement_set = resolver.resolve( File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_internal\resolution\resolvelib\resolver.py", line 127, in resolve result = self._result = resolver.resolve( File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 473, in resolve state = resolution.resolve(requirements, max_rounds=max_rounds) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 341, in resolve name, crit = self._merge_into_criterion(r, parent=None) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 172, in _merge_into_criterion if not criterion.candidates: File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_vendor\resolvelib\structs.py", line 139, in __bool__ return bool(self._sequence) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 143, in __bool__ return any(self) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 129, in <genexpr> return (c for c in iterator if id(c) not in self._incompatible_ids) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 30, in _iter_built for version, func in infos: File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line 258, in iter_index_candidate_infos result = self._finder.find_best_candidate( File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_internal\index\package_finder.py", line 879, in find_best_candidate candidates = self.find_all_candidates(project_name) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_internal\index\package_finder.py", line 824, in find_all_candidates page_candidates = list(page_candidates_it) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_internal\index\sources.py", line 134, in page_candidates yield from self._candidates_from_page(self._link) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_internal\index\package_finder.py", line 783, in process_project_url html_page = self._link_collector.fetch_page(project_url) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_internal\index\collector.py", line 512, in fetch_page return _get_html_page(location, session=self.session) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_internal\index\collector.py", line 422, in _get_html_page resp = _get_html_response(url, session=session) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_internal\index\collector.py", line 120, in _get_html_response resp = session.get( File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_vendor\requests\sessions.py", line 555, in get return self.request('GET', url, **kwargs) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_internal\network\session.py", line 449, in request return super().request(method, url, *args, **kwargs) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_vendor\requests\sessions.py", line 542, in request resp = self.send(prep, **send_kwargs) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_vendor\requests\sessions.py", line 655, in send r = adapter.send(request, **kwargs) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_vendor\cachecontrol\adapter.py", line 53, in send resp = super(CacheControlAdapter, self).send(request, **kw) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_vendor\requests\adapters.py", line 439, in send resp = conn.urlopen( File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_vendor\urllib3\connectionpool.py", line 696, in urlopen self._prepare_proxy(conn) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_vendor\urllib3\connectionpool.py", line 964, in _prepare_proxy conn.connect() File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_vendor\urllib3\connection.py", line 359, in connect conn = self._connect_tls_proxy(hostname, conn) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_vendor\urllib3\connection.py", line 500, in _connect_tls_proxy return ssl_wrap_socket( File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_vendor\urllib3\util\ssl_.py", line 432, in ssl_wrap_socket ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\site-packages\pip\_vendor\urllib3\util\ssl_.py", line 474, in _ssl_wrap_socket_impl return ssl_context.wrap_socket(sock) File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\ssl.py", line 500, in wrap_socket return self.sslsocket_class._create( File "C:\Users\1111111\AppData\Local\Programs\Python\Python38\lib\ssl.py", line 997, in _create raise ValueError("check_hostname requires server_hostname") ValueError: check_hostname requires server_hostname 現時点で確かなことは、どうやら2つのPythonが存在していそうという事?
ppaul

2021/10/22 14:07

すくなくとも二つのythonが入っているのは間違いないですね。 Jupyterで動いているPythonが:\users\1111111\python\py38\scripts\python.exeであり、 pipの結果がRequirement already satisfied: pydotplus inであれば、 sys.pathをいじっていない限りpydotplusをimportできるはずなのです。 確認のため、以下を実行してみてください。 まず、コマンドプロンプトで c:\users\1111111\python\py38\scripts\python.exe を実行します。 Pythonのプロンプトが出たら、import pydotplusを実行 これでimportが成功するかどうかを確認してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問