【Python】Djangoのエラー「The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting.」が出たので対処した方法

こんにちは、nishi_talk(@nishi_talk)です。
今回はPythonのフレームワークDjangoでサクッとサーバーを動かそうとしたら、「The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting.」というエラーが出たときの対処方法をご紹介します。



Djangoのアプリを作成して、サーバーを動かそうとしたら、エラーが出ました。

$ python manage.py runserver

Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x7fe3e6f87bf8>
Traceback (most recent call last):
  File "/usr/bin/.pyenv/versions/3.6.4/lib/python3.6/site-packages/django/utils/autoreload.py", line 225, in wrapper
    fn(*args, **kwargs)
  File "/usr/bin/.pyenv/versions/3.6.4/lib/python3.6/site-packages/django/core/management/commands/runserver.py", line 120, in inner_run
    self.check(display_num_errors=True)
  File "/usr/bin/.pyenv/versions/3.6.4/lib/python3.6/site-packages/django/core/management/base.py", line 410, in check
    raise SystemCheckError(msg)
django.core.management.base.SystemCheckError: SystemCheckError: System check identified some issues:

ERRORS:
?: (staticfiles.E002) The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting.

調べてみるとSTATICFILES_DIRSの設定がSTATIC_ROOTの設定と重複してるよーっ意味らしい。。。
では早速対処していきます。



STATICFILES_DIRSの設定を変更

今回は例としてアプリ名をmySiteという名前にしています。
mySitemySite/setting.pyを編集します。

$ vim setting.py
・
・
・
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)
↓
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
#STATICFILES_DIRS = (
#    os.path.join(BASE_DIR, "static"),
#)

setting.pyの下の方に書かれているSTATICFILES_DIRS箇所をコメントアウトして保存。
再度サーバーを起動したら動きました。

$ python manage.py runserver