PythonにオープンソースCMS「Wagtail」をインストールする(Windows10)

PythonにオープンソースCMS「Wagtail」をインストールしてみます。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■仮想環境を作成してアクティブ化

まずは、仮想環境を使用し、インストールされている依存関係を他のプロジェクトから分離します。

Windows 10でコマンドプロンプトを起動します。起動後、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に移動します。

> python3 -m venv mysite\env
> mysite\env\Scripts\activate.bat

移動後、上記のコマンドを入力し、Enterキーを押し、作成した仮想環境の「Scripts\activate.bat」を実行します。なお、今回はpythonランチャーで切り替えを行っていますので、「py -3.8 -m venv mysite\env」で仮想環境の作成を行っています。

「mysite\env\Scripts\activate.bat」を入力し、Enterキーを押すと、「(env)」と表示されますので仮想環境が設定されました。

■Wagtailをインストールする

設定後、Wagtailをインストールします。

pip install wagtail

インストールするために、コマンドプロンプト上で上記のコマンドを入力し、Enterキーを押します。なお、今回はpythonランチャーで切り替えを行っていますので、「py -3.8 -m pip install wagtail」でインストールします。

Defaulting to user installation because normal site-packages is not writeable
Collecting wagtail
  Downloading wagtail-2.14.1-py3-none-any.whl (11.9 MB)
     |████████████████████████████████| 11.9 MB 6.4 MB/s
Collecting django-modelcluster<6.0,>=5.1
  Downloading django_modelcluster-5.1-py2.py3-none-any.whl (26 kB)
Collecting l18n>=2018.5
  Downloading l18n-2020.6.1.tar.gz (50 kB)
     |████████████████████████████████| 50 kB 1.6 MB/s
Collecting telepath<1,>=0.1.1
  Downloading telepath-0.2-py35-none-any.whl (10 kB)
Collecting django-filter<3.0,>=2.2
  Downloading django_filter-2.4.0-py3-none-any.whl (73 kB)
     |████████████████████████████████| 73 kB 650 kB/s
Collecting django-taggit<2.0,>=1.0
  Downloading django_taggit-1.5.1-py3-none-any.whl (53 kB)
     |████████████████████████████████| 53 kB 588 kB/s
Collecting anyascii>=0.1.5
  Downloading anyascii-0.3.0-py3-none-any.whl (284 kB)
     |████████████████████████████████| 284 kB 3.2 MB/s
Collecting django-treebeard!=4.5,<5.0,>=4.2.0
  Downloading django_treebeard-4.5.1-py3-none-any.whl (103 kB)
     |████████████████████████████████| 103 kB 3.2 MB/s
Requirement already satisfied: Pillow<9.0.0,>=4.0.0 in c:\users\user_\appdata\roaming\python\python38\site-packages (from wagtail) (8.2.0)
Requirement already satisfied: xlsxwriter<2.0,>=1.2.8 in c:\users\user_\appdata\roaming\python\python38\site-packages (from wagtail) (1.4.3)
Requirement already satisfied: beautifulsoup4<4.10,>=4.8 in c:\users\user_\appdata\roaming\python\python38\site-packages (from wagtail) (4.9.3)
Requirement already satisfied: html5lib<2,>=0.999 in c:\users\user_\appdata\roaming\python\python38\site-packages (from wagtail) (1.1)
Collecting Willow<1.5,>=1.4
  Downloading Willow-1.4-py2.py3-none-any.whl (106 kB)
     |████████████████████████████████| 106 kB 6.4 MB/s
Requirement already satisfied: requests<3.0,>=2.11.1 in c:\users\user_\appdata\roaming\python\python38\site-packages (from wagtail) (2.25.1)
Collecting tablib[xls,xlsx]>=0.14.0
  Downloading tablib-3.0.0-py3-none-any.whl (47 kB)
     |████████████████████████████████| 47 kB 3.4 MB/s
Requirement already satisfied: Django<3.3,>=3.0 in c:\users\user_\appdata\roaming\python\python38\site-packages (from wagtail) (3.2.7)
Collecting djangorestframework<4.0,>=3.11.1
  Downloading djangorestframework-3.12.4-py3-none-any.whl (957 kB)
     |████████████████████████████████| 957 kB 3.3 MB/s
Collecting draftjs-exporter<3.0,>=2.1.5
  Downloading draftjs_exporter-2.1.7-py3-none-any.whl (43 kB)
     |████████████████████████████████| 43 kB 688 kB/s
Requirement already satisfied: pytz>=2015.2 in c:\users\user_\appdata\roaming\python\python38\site-packages (from django-modelcluster<6.0,>=5.1->wagtail) (2021.1)
Requirement already satisfied: six in c:\users\user_\appdata\roaming\python\python38\site-packages (from l18n>=2018.5->wagtail) (1.15.0)
Requirement already satisfied: soupsieve>1.2; python_version >= "3.0" in c:\users\user_\appdata\roaming\python\python38\site-packages (from beautifulsoup4<4.10,>=4.8->wagtail) (2.2.1)
Requirement already satisfied: webencodings in c:\users\user_\appdata\roaming\python\python38\site-packages (from html5lib<2,>=0.999->wagtail) (0.5.1)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\users\user_\appdata\roaming\python\python38\site-packages (from requests<3.0,>=2.11.1->wagtail) (1.26.5)
Requirement already satisfied: idna<3,>=2.5 in c:\users\user_\appdata\roaming\python\python38\site-packages (from requests<3.0,>=2.11.1->wagtail) (2.10)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\user_\appdata\roaming\python\python38\site-packages (from requests<3.0,>=2.11.1->wagtail) (2021.5.30)
Requirement already satisfied: chardet<5,>=3.0.2 in c:\users\user_\appdata\roaming\python\python38\site-packages (from requests<3.0,>=2.11.1->wagtail) (4.0.0)
Collecting xlwt; extra == "xls"
  Downloading xlwt-1.3.0-py2.py3-none-any.whl (99 kB)
     |████████████████████████████████| 99 kB 2.0 MB/s
Requirement already satisfied: xlrd; extra == "xls" in c:\users\user_\appdata\roaming\python\python38\site-packages (from tablib[xls,xlsx]>=0.14.0->wagtail) (1.2.0)
Requirement already satisfied: openpyxl>=2.6.0; extra == "xlsx" in c:\users\user_\appdata\roaming\python\python38\site-packages (from tablib[xls,xlsx]>=0.14.0->wagtail) (3.0.7)
Requirement already satisfied: asgiref<4,>=3.3.2 in c:\users\user_\appdata\roaming\python\python38\site-packages (from Django<3.3,>=3.0->wagtail) (3.4.1)
Requirement already satisfied: sqlparse>=0.2.2 in c:\users\user_\appdata\roaming\python\python38\site-packages (from Django<3.3,>=3.0->wagtail) (0.4.2)
Requirement already satisfied: et-xmlfile in c:\users\user_\appdata\roaming\python\python38\site-packages (from openpyxl>=2.6.0; extra == "xlsx"->tablib[xls,xlsx]>=0.14.0->wagtail) (1.1.0)
Building wheels for collected packages: l18n
  Building wheel for l18n (setup.py) ... done
  Created wheel for l18n: filename=l18n-2020.6.1-py3-none-any.whl size=51577 sha256=30b96febe9a543359fde7d77b40a5996bdc36059568d51dacae56c9e2b3b3e2b
  Stored in directory: c:\users\user_\appdata\local\pip\cache\wheels\eaffe7864d49b0f7badda5c1402b11254b62a3eadb949e3fc2ab9
Successfully built l18n
Installing collected packages: django-modelcluster, l18n, telepath, django-filter, django-taggit, anyascii, django-treebeard, Willow, xlwt, tablib, djangorestframework, draftjs-exporter, wagtail
Successfully installed Willow-1.4 anyascii-0.3.0 django-filter-2.4.0 django-modelcluster-5.1 django-taggit-1.5.1 django-treebeard-4.5.1 djangorestframework-3.12.4 draftjs-exporter-2.1.7 l18n-2020.6.1 tablib-3.0.0 telepath-0.2 wagtail-2.14.1 xlwt-1.3.0

Enterキーを押すと、インストールが開始され、「Successfully installed」と表示されれば、正常に、Wagtailと依存関係のインストールが完了したということになります。

■サイトを生成する

(env) C:\Users\user_>wagtail start mysite mysite

インストール後、サイトを生成します。先程、仮想環境の作成は行っているため、「mysite」フォルダはによってすでに作成されていますので、そのフォルダ内に新しく「mysite」というフォルダを作り、サイトを生成します。そのために上記のコマンドを入力し、Enterキーを押します。

Creating a Wagtail project called mysite
Success! mysite has been created

Enterキーを押すと、「「mysite」というWagtailプロジェクトの作成。成功!「mysite」が作成されました。」という英語のメッセージが出力されます。これでサイトの生成は完了となります。

■プロジェクトの依存関係をインストールする

完了後、作成した「mysite」というプロジェクトの依存関係をインストールします。

> cd mysite
>pip install -r requirements.txt

作成のために、cdコマンドを入力し、「mysite」フォルダ内に移動します。移動後、依存関係をインストールしますので、Enterキーを押します。なお、今回はpythonランチャーで切り替えを行っていますので、「>py -3.8 -m pip install -r requirements.txt」で行う。

Enterキーを押すと、依存関係のインストールが完了します。

■データベースを作成する

完了後、データベースを作成します。

 > python manage.py migrate

作成しますので、上記のコマンドをEnterキーを押します。今回はpythonランチャーで切り替えを行っていますので、「>py -3.8 manage.py migrate」で行う。

Operations to perform:
Apply all migrations: admin, auth, contenttypes, home, sessions, taggit, wagtailadmin, wagtailcore, wagtaildocs, wagtailembeds, wagtailforms, wagtailimages, wagtailredirects, wagtailsearch, wagtailusers
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying wagtailcore.0001_squashed_0016_change_page_url_path_to_text_field... OK
Applying wagtailcore.0017_change_edit_page_permission_description... OK
Applying wagtailcore.0018_pagerevision_submitted_for_moderation_index... OK
Applying wagtailcore.0019_verbose_names_cleanup... OK
Applying wagtailcore.0020_add_index_on_page_first_published_at... OK
Applying wagtailcore.0021_capitalizeverbose... OK
Applying wagtailcore.0022_add_site_name... OK
Applying wagtailcore.0023_alter_page_revision_on_delete_behaviour... OK
Applying wagtailcore.0024_collection... OK
Applying wagtailcore.0025_collection_initial_data... OK
Applying wagtailcore.0026_group_collection_permission... OK
Applying wagtailcore.0027_fix_collection_path_collation... OK
Applying wagtailcore.0024_alter_page_content_type_on_delete_behaviour... OK
Applying wagtailcore.0028_merge... OK
Applying wagtailcore.0029_unicode_slugfield_dj19... OK
Applying wagtailcore.0030_index_on_pagerevision_created_at... OK
Applying wagtailcore.0031_add_page_view_restriction_types... OK
Applying wagtailcore.0032_add_bulk_delete_page_permission... OK
Applying wagtailcore.0033_remove_golive_expiry_help_text... OK
Applying wagtailcore.0034_page_live_revision... OK
Applying wagtailcore.0035_page_last_published_at... OK
Applying wagtailcore.0036_populate_page_last_published_at... OK
Applying wagtailcore.0037_set_page_owner_editable... OK
Applying wagtailcore.0038_make_first_published_at_editable... OK
Applying wagtailcore.0039_collectionviewrestriction... OK
Applying wagtailcore.0040_page_draft_title... OK
Applying home.0001_initial... OK
Applying home.0002_create_homepage... OK
Applying sessions.0001_initial... OK
Applying taggit.0001_initial... OK
Applying taggit.0002_auto_20150616_2121... OK
Applying taggit.0003_taggeditem_add_unique_index... OK
Applying wagtailadmin.0001_create_admin_access_permissions... OK
Applying wagtailadmin.0002_admin... OK
Applying wagtailadmin.0003_admin_managed... OK
Applying wagtailcore.0041_group_collection_permissions_verbose_name_plural... OK
Applying wagtailcore.0042_index_on_pagerevision_approved_go_live_at... OK
Applying wagtailcore.0043_lock_fields... OK
Applying wagtailcore.0044_add_unlock_grouppagepermission... OK
Applying wagtailcore.0045_assign_unlock_grouppagepermission... OK
Applying wagtailcore.0046_site_name_remove_null... OK
Applying wagtailcore.0047_add_workflow_models... OK
Applying wagtailcore.0048_add_default_workflows... OK
Applying wagtailcore.0049_taskstate_finished_by... OK
Applying wagtailcore.0050_workflow_rejected_to_needs_changes... OK
Applying wagtailcore.0051_taskstate_comment... OK
Applying wagtailcore.0052_pagelogentry... OK
Applying wagtailcore.0053_locale_model... OK
Applying wagtailcore.0054_initial_locale... OK
Applying wagtailcore.0055_page_locale_fields... OK
Applying wagtailcore.0056_page_locale_fields_populate... OK
Applying wagtailcore.0057_page_locale_fields_notnull... OK
Applying wagtailcore.0058_page_alias_of... OK
Applying wagtailcore.0059_apply_collection_ordering... OK
Applying wagtailcore.0060_fix_workflow_unique_constraint... OK
Applying wagtailcore.0061_change_promote_tab_helpt_text_and_verbose_names... OK
Applying wagtailcore.0062_comment_models_and_pagesubscription... OK
Applying wagtaildocs.0001_initial... OK
Applying wagtaildocs.0002_initial_data... OK
Applying wagtaildocs.0003_add_verbose_names... OK
Applying wagtaildocs.0004_capitalizeverbose... OK
Applying wagtaildocs.0005_document_collection... OK
Applying wagtaildocs.0006_copy_document_permissions_to_collections... OK
Applying wagtaildocs.0005_alter_uploaded_by_user_on_delete_action... OK
Applying wagtaildocs.0007_merge... OK
Applying wagtaildocs.0008_document_file_size... OK
Applying wagtaildocs.0009_document_verbose_name_plural... OK
Applying wagtaildocs.0010_document_file_hash... OK
Applying wagtaildocs.0011_add_choose_permissions... OK
Applying wagtaildocs.0012_uploadeddocument... OK
Applying wagtailembeds.0001_initial... OK
Applying wagtailembeds.0002_add_verbose_names... OK
Applying wagtailembeds.0003_capitalizeverbose... OK
Applying wagtailembeds.0004_embed_verbose_name_plural... OK
Applying wagtailembeds.0005_specify_thumbnail_url_max_length... OK
Applying wagtailembeds.0006_add_embed_hash... OK
Applying wagtailembeds.0007_populate_hash... OK
Applying wagtailembeds.0008_allow_long_urls... OK
Applying wagtailembeds.0009_embed_cache_until... OK
Applying wagtailforms.0001_initial... OK
Applying wagtailforms.0002_add_verbose_names... OK
Applying wagtailforms.0003_capitalizeverbose... OK
Applying wagtailforms.0004_add_verbose_name_plural... OK
Applying wagtailimages.0001_squashed_0021... OK
Applying wagtailimages.0022_uploadedimage... OK
Applying wagtailimages.0023_add_choose_permissions... OK
Applying wagtailredirects.0001_initial... OK
Applying wagtailredirects.0002_add_verbose_names... OK
Applying wagtailredirects.0003_make_site_field_editable... OK
Applying wagtailredirects.0004_set_unique_on_path_and_site... OK
Applying wagtailredirects.0005_capitalizeverbose... OK
Applying wagtailredirects.0006_redirect_increase_max_length... OK
Applying wagtailsearch.0001_initial... OK
Applying wagtailsearch.0002_add_verbose_names... OK
Applying wagtailsearch.0003_remove_editors_pick... OK
Applying wagtailsearch.0004_querydailyhits_verbose_name_plural... OK
Applying wagtailusers.0001_initial... OK
Applying wagtailusers.0002_add_verbose_name_on_userprofile... OK
Applying wagtailusers.0003_add_verbose_names... OK
Applying wagtailusers.0004_capitalizeverbose... OK
Applying wagtailusers.0005_make_related_name_wagtail_specific... OK
Applying wagtailusers.0006_userprofile_prefered_language... OK
Applying wagtailusers.0007_userprofile_current_time_zone... OK
Applying wagtailusers.0008_userprofile_avatar... OK
Applying wagtailusers.0009_userprofile_verbose_name_plural... OK
Applying wagtailusers.0010_userprofile_updated_comments_notifications... OK

Enterキーを押すと、データベースの作成が開始され、完了となります。

■管理者ユーザーの作成

完了後、管理者ユーザーの作成を行います。管理者ユーザー(スーパーユーザー)では、完全な権限を持ち、データベースを表示、作成、管理が行えます。

> python manage.py createsuperuser

管理者ユーザーの作成のために、上記のコマンドを入力し、Enterキーを押します。今回はpythonランチャーで切り替えを行っていますので、「>py -3.8 manage.py createsuperuser」で行う。

Username (leave blank to use 'user_'):

Enterキーを押すと、「Username」と表示されますので、ユーザー名を入力します。その後、Enterキーを押します。空白の場合は「user_」が使用されます。

Email address:

次に「Email address:」を表示されますので、メールアドレスを入力します。入力後、Enterキーを押します。

Password:

次に「Password:」を表示されますので、パスワードを入力します。入力後、Enterキーを押します。

Password (again):

入力すると、再度パスワードの入力を求められますので、入力しEnterキーを押します。

Superuser created successfully.

Enterキーを押すと、上記のメッセージが表示されます。これが表示されれば、管理者ユーザーの作成は完了です。

■生成したサイトをサーバーを起動し確認する

完了後、生成したサイトをサーバーを起動し確認します。

>python manage.py runserver

サーバーを起動するために、上記のコマンドを入力し、Enterキーを押します。今回はpythonランチャーで切り替えを行っていますので、「>py -3.8 manage.py runserver」で行う。

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
September 30, 2021 - 10:00:30
Django version 3.2.7, using settings 'mysite.settings.dev'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

Enterを押すと、サーバーが起動します。「Starting development server(開発サーバーを起動します) at http://127.0.0.1:8000/」と出力されていますので、サイトのURLをコピーし、Webブラウザを起動します。起動後、WebブラウザのアドレスバーにコピーしたURLを貼り付けします。

貼り付け後、アクセスします。

アクセスすると、今回生成したサイトが表示されました。これで確認は完了となります。

なお、「http://127.0.0.1:8000/admin/login/」、もしくは「http://127.0.0.1:8000/admin/」にアクセスすると、

管理画面(ダッシュボード)にアクセスことができます。

コメント

タイトルとURLをコピーしました