🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
import

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

Python 3.x

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

Q&A

解決済

2回答

7218閲覧

pipenv installしたモジュールがimportできない

EbiTT

総合スコア12

import

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

Python 3.x

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

0グッド

0クリップ

投稿2021/02/03 06:03

編集2021/02/04 03:17

前提・実現したいこと

Pythonを使っています。
Google Spread Sheet をAPI経由で操作できるようにするのが目標です。
(今回の場合は特定のセルにHello Worldを出力すること)
こちらの記事に従って進めておりましたが,最後のプログラム実行の段になって下記のエラーが出ています。

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

Terminal

1C:\makeSchedule>C:/Users/conam/AppData/Local/Programs/Python/Python39/python.exe c:/makeSchedule/main.py 2Traceback (most recent call last): 3 File "c:\makeSchedule\main.py", line 1, in <module> 4 import gspread 5ModuleNotFoundError: No module named 'gspread'

また,vscodeのpylance拡張機能にはImport 'gspread' could not be resolvedと言われています。

該当のソースコード

python

1import gspread 2from oauth2client.service_account import ServiceAccountCredentials 3 4scope = ['https://spreadsheets.google.com/feeds', 5 'https://www.googleapis.com/auth/drive'] 6 7credentials = ServiceAccountCredentials.from_json_keyfile_name( 8 'gspread-makeschedule-880083f96599.json', scope) 9gc = gspread.authorize(credentials) 10wks = gc.open('Dog-for-Campus').sheet1 11 12wks.update_acell('A1', 'Hello World!') 13print(wks.acell('A1')) 14

試したこと

python

1pipenv shell #仮想環境に入る 2python #対話モード開始 3import gspread

上記のように対話モードでimportするとエラーは出ませんでした

#追記
#####どのようにファイルを実行しているか
vscodeの画面右上にあるRun Python File in Terminal Command ボタンを直接クリックして実行しています。
#####エラーメッセージ全文
上記エラーメッセージを全文に致しました。

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

python3.9.1

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/02/04 01:52 編集

vscodeのpylanceが見てるpythonの環境とターミナルのpythonの環境が違うのでは。 ウィンドウ左下にpythonのマークがあるのでそれをクリックしてターミナルの環境に合わせてみてはどうでしょうか。 あとどのように実行しているのかと、エラーの全文を質問に追記してください。
EbiTT

2021/02/04 03:26

ターミナルのpythonの環境がpipenvで立てていた仮想環境を見ていなかったようです。「ウィンドウ左下にpythonのマークがあるのでそれをクリックしてターミナルの環境に合わせ」たら解決いたしました。ありがとうございました
EbiTT

2021/02/04 03:36

解決の直接のきっかけとなったこちらをBAさせて頂きたかったのですが,生憎コメントですのでそれができません。しかし解決済みの質問を回答待ちにしておくのも駄目なので,yakitoriさんのコメントをBA扱いとし,一応自己解決として質問を閉じさせて頂きます。本当にありがとうございました
退会済みユーザー

退会済みユーザー

2021/02/04 04:07

自己解決で全然問題ありません。 該当のモジュールを使ったことがなく、やや当てずっぽうだったのでこちらでコメントしましたが参考になったみたいで良かったです。
guest

回答2

0

この記事をご参照の上、VSCodeの環境周りを確認してみてください。

VSCodeでなぜか「unresolved import」が出る時の対処法

投稿2021/02/03 09:48

_whitecat_22

総合スコア1305

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

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

EbiTT

2021/02/03 11:05

ご回答ありがとうございます!記事を拝見しましたが,この方法だと修正したsettings.jsonが他のvscodeのプロジェクトにも影響を与えそうだったので採用できませんでした。対話モードにスクリプトをコピペすると完璧に動くんですが,普通にファイルを実行するとimportができない,というところです。
_whitecat_22

2021/02/03 11:17

pyenvした場所にPATHは通っているということですね、、 今回もpyenvの中でプログラムを作っていますよね? もし、pyenvの外でプログラムを作っているならば、そこへPATHを通さないといけませんが、それは大丈夫でしょうか。
EbiTT

2021/02/03 11:27

pipenvで作った仮想環境の中でプログラムを走らせているか?ということでしょうか? 仮想環境の中でプログラムは走らせています
_whitecat_22

2021/02/03 11:47

そうですか。。 プログラムは、VSCODEでは、ワークスペースから開いていますか?
EbiTT

2021/02/03 11:59

ええと...vscode上のターミナルからプログラムを走らせているかということでしょうか そのようにしています
_whitecat_22

2021/02/03 12:06

上段のメニュー「ファイル」⇒「ワークスペースを開く」から該当のフォルダやファイルを開いて編集していますか?
EbiTT

2021/02/03 15:26

いえ,普通にエクスプローラからワーキングディレクトリをドラッグアンドドロップしてvscodeに開いてます
_whitecat_22

2021/02/03 22:17

一度、該当のフォルダを、VSCodeのメニューから、フォルダを開く⇒ターミナルでスクリプト実行してみてください。 または、ワークスペースを開くとして(ワークスペースに指定する必要があります)、該当のフォルダをワークスペースに設定してから、ターミナルでスクリプトを実行してみてください。 該当フォルダにPATHが通っていないと見做されているものと思われます。
EbiTT

2021/02/04 03:29

該当フォルダの実行していたターミナルがpipenvで立てていた仮想環境を参照していなかったのが原因のようで,ターミナルの環境をそちらに合わせたら解決いたしました。ご回答感謝します!!
_whitecat_22

2021/02/04 03:30

解決して良かったです!^^
guest

0

自己解決

vscode左下のpythonの表示をクリックして,適切な仮想環境を選択する。

投稿2021/02/04 03:37

EbiTT

総合スコア12

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問