Skip to content

Djangoでウェブアプリを作る(4) – アプリケーションを作る

前回の記事:
Djangoでウェブアプリを作る(3)

今回参照する公式チュートリアル:
https://docs.djangoproject.com/ja/3.2/intro/tutorial01

さて、前回は、プロジェクト作成、そして、実際に動作確認までをした。公式チュートリアルでは、最初に簡単な投票システムを作る。

スポンサードリンク

Pollsアプリケーションを作る

さて、アプリケーションとやらをどこに作ればいいのか?

チュートリアルでは「manage.pyと同じディレクトリに入って以下のコマンドを実行」とある。

python manage.py startapp polls

前回、mysiteプロジェクトを作成した時、manage.pyというファイルが自動作成されていた。つまり、mysiteフォルダの下 ( サブフォルダも ” mysite ” なのでややこしいが、ルートフォルダの下だ。)

カレントをルートフォルダに移動し、コマンドを実行・・・おっと! インポートエラーの表示が・・・

C:\>CD C:\django_project\mysite
C:\django_project\mysite>python manage.py startapp polls

Traceback (most recent call last):
 File "manage.py", line 11, 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 exception:

Traceback (most recent call last):
  File "manage.py", line 22, in 
    main()
  File "manage.py", line 13, in main
    raise ImportError(
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?

C:\django_project\mysite>

エラーの原因

原因は何となく分っていた。入力したコマンドは、pythonのバージョン指定が無いため、デフォルト指定されていたPython3.8 に対して実行されている。しかし、3.8にはDjangoがインストールされていないため、インポートエラーになっている。

Windowsのシステム環境変数 ” path ” に記録されたPython3.8へのパスを3.9に書き換えた。プロンプトで ” python ” と入力すると、3.9が起動。これでデフォルトが3.9に変更された。

C:\>python
Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

もう一度、アプリケーション作成コマンドを実行。エラー表示は出ない。

C:\>CD C:\django_project\mysite
C:\django_project\mysite>python manage.py startapp polls
C:\django_project\mysite>

おお、ルートフォルダの下に ” polls ” フォルダが作成されている。これがアプリケーションだな。

pollsフォルダの中身は・・・ふむふむ、段々とフレームワークらしくなってきましたね。

複数のPythonを使っている場合の注意点

今回、インポートエラーで発覚したが、開発環境に複数バージョンのPythonが存在する場合、入力コマンドがどのPythonに対して実行されるのか、整理しておいた方がいい。

Python3.8にもDjangoがインストールされている場合、Python3.9にインストールしたDjangoを呼び出しているつもりでも、実際は3.8の方を呼び出しており、表面上何事もなく動いていることもある。

もし、システム環境変数を触りたくないという場合は、アプリケーション作成コマンドは、ランチャー経由のバージョン指定で次のように入力するといい。

py -3.9 manage.py startapp polls
この記事をシェア

Comments are closed, but trackbacks and pingbacks are open.