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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

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

Q&A

解決済

2回答

3737閲覧

pyperclipがimportできなくなった

keikagami

総合スコア14

Python 3.x

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

0グッド

0クリップ

投稿2019/01/21 14:37

編集2019/01/22 00:29

前提・実現したいこと

python、プログラム初心者でプログラムの練習をしています。
pythonの後anacondaをインストール
インタラクティブシェルでコードを入力しながら確認し、
pyファイルにまとめて学習しています。

インタラクティブシェル python3.7.0shell
では、pyperclipなどのモジュールがインポートできますが、
pyファイルから動かすと次のエラーメッセージがでます。

pyファイルからも問題なく動作するようにしたいです。

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

Traceback (most recent call last): File "C:\Users\kagami\Desktop\filebase\test.py", line 2, in <module> import pyperclip, re ModuleNotFoundError: No module named 'pyperclip'

該当のソースコード

python3

1#! python3 2import pyperclip, re 3 4email_regex = re.compile(r'''( 5[a-zA-Z0-9._%+-]+ 6@ 7[a-zA-Z0-9.-]+ 8(.[a-zA-Z]{2,4}) 9)''', re.VERBOSE) 10

質問するにあたり情報が不足していると思いますが
初心者すぎてどう記載すれば良いのかわかりません。

よろしくお願いします。

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

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

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

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

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

can110

2019/01/22 00:37

OS、「python3.7.0shell」とは何か?、「pyファイルから動かす」の具体的な手順を記載ください。
keikagami

2019/01/22 15:03

can110さん、コメントありがとうございます。 OSはwindows7 64bitです。 「python 3.7.0」はidleを起動すると表示されるインタラクティブシェルの上部に記載されています。 「pyファイルから動かす」というのは... ①インタラクティブシェルから新規ファイル作成し、pythonのコードを打ち込んでpyファイルとして任意の場所(デスクトップなど)に保存 ②作成したpyファイルを右クリックして「edit with IDLE 3.7」をクリック。 ③開いたファイルの「run」またはF5キーを押して実行する python 3.7.0 shellというインタラクティブシェルが開き実行結果が出る。 はずが、 ModuleNotFoundError: No module named 'pyperclip' というエラーになり停止します。 ご指摘とてもありがたいです。OSすら記載しておらず恥ずかしい限りです。
can110

2019/01/22 15:10

了解です。IDLE上ですね。
guest

回答2

0

ベストアンサー

対策

「インタラクティブシェルで動かしている Python」と「test.py を動かしている Python」が、もし別々の Python なら「test.py を動かしている Python」に対しても pyperclip をインストールしてください。

$ pip install pyperclip

原因

ちょっと難しいかもしれませんが「インタラクティブシェルで動かしている Python」と「test.py を動かしている Python」は、同じ Python ですか?

ModuleNotFoundError とは、パッケージまたはモジュールが見つからないよ、というエラーです。Python は import するときに パス を検索しています。

「インタラクティブシェルで動かしている Python」と「test.py を動かしている Python」が、もし別々の Python なら、それぞれ独自の パス を持っています。

パスの考え方については、こちらに書きました。
Python の import 文ってなに?

投稿2019/01/22 01:37

nico25

総合スコア830

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

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

keikagami

2019/01/22 15:12

nico25さん、ご回答ありがとうございます。 リンクのほうもありがたく読ませていただいています。 パスについて理解がまったく甘いのですが、2つのpythonに対し import sys,pprint pprint.pprint(sys.path) と入力したところ、 全く異なるパスが出てきました。 【インタラクティブシェルで動かしている、pyperclipがimportできる方】 'C:\Users\ユーザ名\Anaconda3\lib\site-packages' 【test.pyをrunしたときに起動するpython、import pyperclipがエラーになるほう】 'C:\Users\ユーザ名 ' 'ユーザ名\AppData\Local\Programs\Python\Python37\lib\site-packages' こうしてみると同じpythonではないと見るべきなのでしょうか。
nico25

2019/01/22 16:43

> こうしてみると同じpythonではないと見るべきなのでしょうか。 別の Python ですね。 ログを見せていただき、ありがとうございます。 pip install した Python のライブラリは site-packages というフォルダに保存されます。1つの Python で複数の site-packages を持つというのは、やればできると思うのですが、基本的にはないはずです。 そのため2つの site-packages があったということは、2つの Python がはいっているという理解で、正しいはずです。 > 'C:\Users\ユーザ名\Anaconda3\lib\site-packages' こちらは Anaconda3 の Python の site-packages で > 'C:\Users\ユーザ名 ' 'ユーザ名\AppData\Local\Programs\Python\Python37\lib\site-packages' こちらは、おそらく最初にインストールした Python の site-packages のはずです。
nico25

2019/01/22 17:02

Anaconda にパッケージをインストールするときは、 pip install するだけではダメで いくらか手順を踏まないといけないみたいですね。 以下の記事は macOS のものですが、 かなり状況は似てるかなと思います。 > Anaconda環境にpipでパッケージをインストールする - Qiita > https://qiita.com/mckeeeen/items/d4cbe4a16a102157f40c > > しかし、そこで、 > ``` > $ pip install <パッケージ名> > ``` > を実行すると、デフォルトの環境にインストールされてしまい > Anaconda 環境で使うことができません。
keikagami

2019/01/23 13:23

私の環境の場合 $ pip install パッケージ名 をするとインストールされるのはanacondaの環境のほうのようです。 (入門書ではpython3をインストール後 anacondaをインストールしIDLEでコードを書くようになっていました。) pythonの環境が2つあると理解しましたので、 IDLE起動⇒FILE⇒open で、pyperclip等パッケージがインストールされている方のpythonで test.pyを開き実行してみたところエラー無く動作しました。 完全な解決、となったのかは分らないのですが、回答してくださった方のおかげで理解が深まりました。 ありがとうございました。
guest

0

IDLEこちらの「標準(ほかに良い言い回しが見つかりませんが)」のPythonと一緒にインストールされたもので、標準のPython環境上で動作します。
一方、pyperclipはAnaconda上のPython環境上にインストールされており、上記とは全く別の環境です。
よってIDLE上では動作しません。
対処法としては、「標準」のPythonを起動させて、そのうえでpip install pyperclipすればよいです。
が、当方標準Python環境ないので残念ですが具体的な手順は示せません。

投稿2019/01/22 00:36

編集2019/01/22 15:14
can110

総合スコア38262

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

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

keikagami

2019/01/22 15:34

IDLE上でしか起動したことがなく、標準のpythonの起動方法が分かりません。 py.exe python.exe など実行し pip install pyperclip を入力しても SyntaxError : invalid syntaxとなってしまいます。 もう少し調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問