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

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

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

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

Q&A

解決済

2回答

3638閲覧

VScode内でPythonファイルを実行したときにのみdotenvのインポートエラーが発生する。

Tashin31

総合スコア14

Python 3.x

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

0グッド

0クリップ

投稿2023/07/16 01:32

実現したいこと

  • VScode内でpythonファイルを実行したときにのみ発生するDotenvのModuleNotFoundErrorを解決したい。

前提

VScodeを用いて、PythonでDiscordのBotを開発している最中です。
コマンドプロンプトから開発中のプログラムであるDiscordBot.pyを実行した場合は問題なく動作するのですが、VScodeの画面右上の”新しいPythonファイル”からプログラムを実行すると、dotenvに対してのみModuleNotFoundErrorが発生します。

dotenvをインポートするコードをコメントアウトするとModuleNotFoundErrorは生じないため、dotenv以外のライブラリは問題なくインポートできていると考えています。

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

(venv) C:\Users\〇〇\work\DiscordBot>C:/Users/〇〇/work/virtualenvs/venv/Scripts/python.exe c:/Users/〇〇/work/DiscordBot/DiscordBot.py Traceback (most recent call last): File "c:\Users\〇〇\work\DiscordBot\DiscordBot.py", line 2, in <module> from dotenv import load_dotenv ModuleNotFoundError: No module named 'dotenv'

該当のソースコード

import os from dotenv import load_dotenv import discord import random import emoji import datetime #自分のBotのアクセストークンを取得 load_dotenv() token = os.getenv("DiscordBot_token")

試したこと

1, pip listを用いて仮想環境"venv"内にpython-dotenv 1.0.0がインストールされていることを確認した。また、VScodeの画面右下から仮想環境"venv"が選択されていることを確認した。

2, VScode内でターミナルを起動し、そこでファイル名を指定してプログラムを実行した。この場合、問題なく動作した。

3, エラーが発生しているfrom dotenv import load_dotenvの箇所とこれを利用する
load_dotenv()
token = os.getenv("DiscordBot_token")
の計3行をコメントアウトし、tokenを直接入力した。
この場合場合はVScode内でも問題なく動作した。

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

ツール等のバージョンは下記のとおりです。
Visual Studio Code : 1.80.1(user setup)
Python : 3.11.3
python-dotenv : 1.0.0

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

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

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

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

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

TakaiY

2023/07/16 06:21

venvが複数あって、コマンドプロンプトとvscodeで違うvenvを使っているということはありませんか? エラーが出ているvenvは C:/Users/〇〇/work/virtualenvs/venv です。
Tashin31

2023/07/16 09:02

venv以外に仮想環境はなく、コマンドプロンプトでコマンドを入力する箇所には(venv) C:\Users\〇〇\work\DiscordBot>と、vscodeの右下には3.11.3('venv':venv)と表示されているのでおそらくどちらも同じvenv内で実行されているのではないかと思っています。 vscodeの右上にある”新しいPythonファイル”から実行した際に別環境に切り替わってしまうことがあったりするのでしょうか?
Tashin31

2023/07/16 09:06 編集

VScodeのインタープリターの選択欄ではPython 3.11.4('venv') ~work\virtualenvs\venv\Scripts\python.exeを選択しています。
TakaiY

2023/07/16 14:30

そこは問題なさそうですね。 質問に「VScodeの画面右上の”新しいPythonファイル”からプログラムを実行する」とありますが、自分のVScodeには 右上にそのようなボタンなどはありません。 この部分の手順などをもう一度確認いただけますか。
Tashin31

2023/07/16 15:06 編集

私の画面ではウインドウ右上にあるタブの最小化ボタン等の下に4つの記号があり、カーソルを合わせると「新しいPythonファイル」「実行するかデバッグします...」「エディターを右に分割(Crtl+\)[Alt]エディターを下に分割」「その他の操作...」と表示されます。4つの記号はそれぞれ、再生ボタン、>を90°回転させたもの、縦に2分割された正方形、3点リーダー、のような記号です。 このうち一番左の「新しいPythonファイル」をクリックして実行しています。「新しいPythonファイル」は「実行するかデバッグします...」を選択した際に表示されるプルダウン形式のメニュー内にもありました。 VScodeにインストールされている拡張機能はC/C++, Inline SQL, Python, 日本語化パックの4つです。
Tashin31

2023/07/16 15:15

具体的な原因は不明確なままではありますが、Pythonとパッケージ等を再インストールしたところ問題なく動作するようになりました。
TakaiY

2023/07/17 02:28

解決したようでよかったですね。 右上のボタンについては違和感ありますね。自分は日本語にしていないのですが、左から"Run Code", "Run or Debug", "Split Editor Right 略"、 "More Action"となっています。一番左以外は同じ意味ですが、 そこは日本語なら「実行」あたりが適当だと思います。 「新しいPythonファイル」と表示されていて、押すと実行されるのであれば、完全な飜訳ミズに思えます。
Tashin31

2023/07/17 05:22

コメントありがとうございました。新しく実行するという意味かなと考えていましたが、翻訳ミスの可能性もあるのですね。
guest

回答2

0

自己解決

Pythonの再インストール

投稿2023/07/16 15:10

編集2023/07/16 15:13
Tashin31

総合スコア14

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

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

0

あなたがふつうに実行しているpythonと、VSCodeで実行しているpythonが別のやつなんでは。

投稿2023/07/16 02:52

y_waiwai

総合スコア88163

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

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

Tashin31

2023/07/16 05:57

異なるバージョンのPythonを使用しているのではないかということでしょうか
y_waiwai

2023/07/16 12:45

異なるバージョン、ということではないです。 同じpythonか、っってことです。 pythonってのは、いろーんなアプリに内蔵されておりまして、ひとつのPCに5つとか10とかインストールされてるということは珍しくありません VSCodeで実行されるPythonってのはどこにあるものなのかをまずは確認しましょう
Tashin31

2023/07/16 15:10 編集

ありがとうございます "venv"以外に仮想環境はなく、コマンドプロンプトでコマンドを入力する箇所には(venv) C:\Users\〇〇\work\DiscordBot>と表示されており、VScodeのインタープリターの選択欄ではPython 3.11.4('venv') ~work\virtualenvs\venv\Scripts\python.exeを選択しているため、同じPythonを実行しているのではないかと思っているのですがどうでしょうか。 もしこれで判断ができない場合、他の判断方法を教えていただけますでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問