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

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

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

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

Q&A

1回答

2272閲覧

Django(WSL環境下)をデバッグしようとすると、ImportErrorが発生する

NobiS

総合スコア4

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

0グッド

0クリップ

投稿2020/10/27 14:55

前提・実現したいこと

django初心者です。

djangoをデバッグしようとするとImportErrorが発生し、
manage.pyから先へ進めない現象に悩まされています。

環境としては、WSL(Ubuntu)上にvenvでpython仮想環境を作成し、
その中でDjangoを実行している状態です。

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

launch.jsonを実行し、manage.pyをrunserverすることはできたのですが、
下記のエラーが出てしまいます。
Djangoのモジュールが正しくインポートされていないとのことです。

エラーメッセージ (venv) nobishiro@DESKTOP-E3BHFC4:~/makeAppProject/TaskManager/TaskManager$ cd /home/nobishiro/makeAppProject/TaskManager/TaskManager ; env /usr/bin/python3 /home/nobishiro/.vscode-server/extensions/ms-python.python-2020.6.91350/pythonFiles/lib/python/debugpy/launcher 63086 -- /home/nobishiro/makeAppProject/TaskManager/TaskManager/manage.py runserver Traceback (most recent call last): File "/home/nobishiro/makeAppProject/TaskManager/TaskManager/manage.py", line 10, in main from django.core.management import execute_from_command_line ModuleNotFoundError: No module named 'django' The above exception was the direct cause of the following e![イメージ説明](d2f1b59b964ce6c083ae627aae1f49f2.png)on: Traceback (most recent call last): File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/usr/lib/python3.6/runpy.py", line 85, in _run_code exec(code, run_globals) File "/home/nobishiro/.vscode-server/extensions/ms-python.python-2020.6.91350/pythonFiles/lib/python/debugpy/__main__.py", line 45, in <module> cli.main() File "/home/nobishiro/.vscode-server/extensions/ms-python.python-2020.6.91350/pythonFiles/lib/python/debugpy/../debugpy/server/cli.py", line 430, in main run() File "/home/nobishiro/.vscode-server/extensions/ms-python.python-2020.6.91350/pythonFiles/lib/python/debugpy/../debugpy/server/cli.py", line 267, in run_file runpy.run_path(options.target, run_name=compat.force_str("__main__")) File "/usr/lib/python3.6/runpy.py", line 263, in run_path pkg_name=pkg_name, script_name=fname) File "/usr/lib/python3.6/runpy.py", line 96, in _run_module_code mod_name, mod_spec, pkg_name, script_name) File "/usr/lib/python3.6/runpy.py", line 85, in _run_code exec(code, run_globals) File "/home/nobishiro/makeAppProject/TaskManager/TaskManager/manage.py", line 21, in <module> main() File "/home/nobishiro/makeAppProject/TaskManager/TaskManager/manage.py", line 16, in main ) from exc ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?

該当のソースコード

launch.json

json

1{ 2 "configurations": [ 3 { 4 "name": "Python: Django", 5 "type": "python", 6 "request": "launch", 7 "program": "${workspaceFolder}/manage.py", 8 "pythonPath": "/usr/bin/python3", 9 "args": [ 10 "runserver" 11 ], 12 "django": true 13 } 14 ] 15}

manage.py

python

1#!/usr/bin/env python 2"""Django's command-line utility for administrative tasks.""" 3import os 4import sys 5 6 7def main(): 8 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'TaskManager.settings') 9 try: 10 from django.core.management import execute_from_command_line 11 except ImportError as exc: 12 raise ImportError( 13 "Couldn't import Django. Are you sure it's installed and " 14 "available on your PYTHONPATH environment variable? Did you " 15 "forget to activate a virtual environment?" 16 ) from exc 17 execute_from_command_line(sys.argv) 18 19 20if __name__ == '__main__': 21 main() 22

settings.json

json

1{ 2 "editor.suggestSelection": "first", 3 "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue", 4 "editor.formatOnPaste": true, 5 "editor.formatOnSave": true, 6 "editor.formatOnType": true, 7 "python.defaultInterpreterPath": "/usr/bin/python3", 8 "python.venvpath": "/usr/bin/python3" 9} 10

フォルダ構成
イメージ説明

原因ではないかと思っていること

・デバッグ実行時のpython実行環境の設定がないのではないか。

先日、python仮想環境を有効(source venv環境/bin/activate)にせず、「python3 manage.py runserver」を行った時にもImportErrorが起き、manage.pyの16行目でエラーが発生していました。
そのことから、デバッグ実行時にpython仮想環境の有効化が必要なのではないかと思いました。

試してみたこと

①launch.jsonにpythonpathを追加
②settings.jsonにpython.venvpathの設定を追加
しかし、ImportErrorは直りませんでした。

伺いたいこと

伺いたいことは2点あります。

①「デバッグ実行時にpython実行環境の設定がないからImportErrorが発生している」という考えはあっているか。もし合っているなら、どのファイルに、どのように記述すればよいか
③もし合っていなければ、他にどのような原因があるのか

ご存じの方がいらっしゃるなら、ぜひご教示いただきたいです。
以上、よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

エラーメッセージ内の"ModuleNotFoundError: No module named"
というエラーは下記の原因が考えられます。
・モジュール名が間違っていないか
・モジュールがカレントディレクトリに存在するか
・pipコマンドでインストール済みか

エラーの内容からするに、Djangoがインストールされていないことによるエラーに見受けられます。
一度環境にDjangoをダウンロードしていただき、再度"python3 manage.py runserver"をお願いします。

投稿2020/10/30 07:09

setuna0531

総合スコア128

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問