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

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

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

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Python

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

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

Q&A

解決済

1回答

4191閲覧

ModuleNotFoundErrorを解消したいです。

84zero

総合スコア48

Python 3.x

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Python

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

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

0グッド

0クリップ

投稿2018/01/30 06:42

編集2018/01/31 03:01

前提・実現したいこと

『退屈なことはPythonにやらせよう』を読み進めています。
6.3節の「プロジェクト:パスワードロッカー」をpw.pyという名前で保存し、
その後、バッチファイルを作成しました。
Win-Rキーを押し
pw email
と入力し、実行したところ以下のエラーメッセージがでました。

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

Traceback (most recent call last): File "C:\MyPythonScripts\pw.py", line 8, in <module> import pyperclip ModuleNotFoundError: No module named 'pyperclip'

該当のソースコード

Python

1#! python3 2# pw.py - パスワード管理プログラム(脆弱性あり) 3 4PASSWORDS = {'email':'apple', 5 'blog':'pen', 6 'luggage':'ppap'} 7import sys 8import pyperclip 9 10if len(sys.argv) < 2: 11 print('使い方: python pw.py [アカウント名]') 12 print('パスワードをクリップボードにコピーします') 13 sys.exit() 14 15account = sys.argv[1] # 最初のコマンドライン引数がアカウント名 16 17if account in PASSWORDS: 18 pyperclip.copy(PASSWORDS[account]) 19 print(account + 'のパスワードをクリップボードにコピーしました') 20else: 21 print(account +'というアカウント名はありません') 22

試したこと

import pyperclipの次の行に
pyperclip.path.append(r'C:\Users\hashi\AppData\Local\Programs\Python\Python36-32\Lib\site-packages\pyperclip')
を加えてみて実行しましたが、別のエラーが発生しました。

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

パイソン3.6 32bit を使用しています。
インタラクティブシェルに

import pyperclip
pyperclip.copy('Hello wold!')
pyperclip.paste()

と入力すると'Hello wold!'と表示されるので、
pyperclipのインストールは上手くいっていると思います。

上記プログラム pw.py の保存場所が「C:\MyPythonScripts」です。
pyperclipの保存場所が
C:\Users\hashi\AppData\Local\Programs\Python\Python36-32\Lib\site-packages\pyperclip
になっているので、pyperclipを探し出せないのが原因かと思いますが、
どのように解消すれば良いでしょうか。
プログラミング初心者です。ご解答宜しくお願いします。

追記:バッチファイルは「pw.bat」というファイル名で「C:\MyPythonScripts」に保存しています。
バッチファイルの全文は以下の通りです。

@py.exe C:\MyPythonScripts\pw.py %*
@pause

追記:「C:¥Windows¥py.exe」を開くと画面に下記のように冒頭の2行が出力されます。
その後import pyperclip を使用するとエラーが発生します。

Python 3.6.3 |Anaconda, Inc.| (default, Oct 15 2017, 03:27:45) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import pyperclip Traceback (most recent call last): File "<stdin>", line 1, in <module> ModuleNotFoundError: No module named 'pyperclip'

「C:\Users\hashi\AppData\Local\Programs\Python\Python36-32\python.exe」を開くと画面に下記のように冒頭の2行が出力されます。
その後import pyperclip を使用できます。

Python 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 17:26:49) [MSC v.1900 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import pyperclip >>> pyperclip.copy('apple') >>> pyperclip.paste() 'apple'

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

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

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

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

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

can110

2018/01/30 08:17

作成したバッチファイルのフルパスと内容を追記すると、回答得られやすいかと思います。
84zero

2018/01/30 08:39 編集

ご指摘ありがとうございます。追記いたしました。バッチファイルの中身はテキストに従って作ったもので、どんな働きをするのかはあまりよく分かっていません。よろしくお願いします。
can110

2018/01/30 08:55

私はAnaconda(=PythonスイッチャーEXEであるpy.exeがない)環境なのでお役に立てませんが、インタラクティブ上とは異なるPythonが動作しているような気がします。
84zero

2018/01/31 01:47

どうやら、py.exeとpthon.exeでの挙動が違うようです。py.exeでも「pip install pyperclip」が扱えればよいのですが…。
guest

回答1

0

ベストアンサー

-引数が無い場合は、py.exeは最後にインストールしたpython環境で実行します。
-を追加してpythonのバージョンを指定して実行してみてはどうでしょうか?

@py.exe C:\MyPythonScripts\pw.py %*

bat

1@py -3.6 C:\MyPythonScripts\pw.py %*

■参考情報
0. Pythonランチャー
0. py.exe -Vを実行すると、py.exeが実行するpython環境が分かります。

C:(ユーザー名)>py.exe -V Python 3.6.3 :: Anaconda, Inc.

2018/1/31追記

Python 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 17:26:49) [MSC v.1900 32 bit (Intel)] on win32

Python 3.6.3 |Anaconda, Inc.| (default, Oct 15 2017, 03:27:45) [MSC v.1900 64 bit (AMD64)] on win32

Python 3.6.3の32ビット版をインストール後に、Anacondaをインストールしたことによって、py.exeがAnacondaのものに上書きされたみたいですね。

案1)Anacondaをアンインストールした後、python 3.6.3を再インストールする。

案2)Anacondaの環境にpyperclipをインストールする。
コマンドプロンプトよりactivateコマンドを実行後にpip install pyperclipを実行。

※anaconda&python3.6環境なので、pip install実行時に問題が発生するかもしれないので、念のため記載しておきます。
anaconda環境でpip実行時にtransport_encodingのエラーメッセージが出た場合は、conda install pipを実行してくださいな。

投稿2018/01/30 16:24

編集2018/01/31 13:19
umyu

総合スコア5846

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

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

84zero

2018/01/31 01:38

ご解答ありがとうございます。試してみましたが、上手くいきませんでした。 py.exeとpython.exeの画面を追記いたしましたので、お気づきの点があれば、 またご回答いただければ幸いです。
84zero

2018/02/01 00:12

umyuさん、ありがとうございます!案2)を実行したところ解決しました! 他の人の参考のため、解決までの実行方法を付記します。 ①バッチファイルの1行目を @py -3.6 C:\MyPythonScripts\pw.py %* に変更。 ②コマンドプロンプトを起動 ③activate と入力してEnter ④pip install pyperclip を入力してEnter Collecting pyperclip Installing collected packages: pyperclip Successfully installed pyperclip-1.6.0 と表示される。 その後はテキストに従って、無事にプログラムが実行されていることを確認。 ①Win-Rキーを押し ②pw email と入力 ③「emailのパスワードをクリップボードにコピーしました」と表示される。 補足: Anacondaの環境にPyperclipをインストールしても、 バッチファイルの1行目が @py.exe C:\MyPythonScripts\pw.py %* のままだと、バージョンを指定してくださいという表示がなされるため上手くいかなかった。
umyu

2018/02/01 13:34 編集

>84zeroさんへ 解決おめでとうございます。最終解決手順のフィードバック情報ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問