6110
@6110

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Djangoでrunserverが実行できない

解決したいこと

『動かして学ぶ!Python Django 開発入門』(初版)著・大高隆 翔泳社
のChapter5-11を参照しながらPycharm community editionでDjangoの開発サーバーを立ち上げようとしているのでしが、エラーが発生してサーバーを立ち上げることができません(runserverが実行できません)。
このエラーはどのようにしたら解決できるのかご教示いただけますと幸いです。

発生している問題・エラー

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 69: invalid start byte

該当するソースコード

"C:\Users\username\venv_my_enviroment\Scripts\python.exe" "C:\Users\username\venv_my_enviroment\nunobiki_system\manage.py" runserver 
2024-08-30 21:58:04,783	[INFO]	C:\Users\username\venv_my_enviroment\Lib\site-packages\django\utils\autoreload.py(Line:668)	Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
Exception in thread django-main-thread:
Traceback (most recent call last):
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.2544.0_x64__qbz5n2kfra8p0\Lib\threading.py", line 1045, in _bootstrap_inner
    self.run()
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.2544.0_x64__qbz5n2kfra8p0\Lib\threading.py", line 982, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\username\venv_my_enviroment\Lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\username\venv_my_enviroment\Lib\site-packages\django\core\management\commands\runserver.py", line 137, in inner_run
    self.check_migrations()
  File "C:\Users\username\venv_my_enviroment\Lib\site-packages\django\core\management\base.py", line 581, in check_migrations
    executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\username\venv_my_enviroment\Lib\site-packages\django\db\migrations\executor.py", line 18, in __init__
    self.loader = MigrationLoader(self.connection)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\username\venv_my_enviroment\Lib\site-packages\django\db\migrations\loader.py", line 58, in __init__
    self.build_graph()
  File "C:\Users\username\venv_my_enviroment\Lib\site-packages\django\db\migrations\loader.py", line 235, in build_graph
    self.applied_migrations = recorder.applied_migrations()
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\username\venv_my_enviroment\Lib\site-packages\django\db\migrations\recorder.py", line 89, in applied_migrations
    if self.has_table():
       ^^^^^^^^^^^^^^^^
  File "C:\Users\username\venv_my_enviroment\Lib\site-packages\django\db\migrations\recorder.py", line 63, in has_table
    with self.connection.cursor() as cursor:
         ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\username\venv_my_enviroment\Lib\site-packages\django\utils\asyncio.py", line 26, in inner
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\username\venv_my_enviroment\Lib\site-packages\django\db\backends\base\base.py", line 320, in cursor
    return self._cursor()
           ^^^^^^^^^^^^^^
  File "C:\Users\username\venv_my_enviroment\Lib\site-packages\django\db\backends\base\base.py", line 296, in _cursor
    self.ensure_connection()
  File "C:\Users\username\venv_my_enviroment\Lib\site-packages\django\utils\asyncio.py", line 26, in inner
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\username\venv_my_enviroment\Lib\site-packages\django\db\backends\base\base.py", line 279, in ensure_connection
    self.connect()
  File "C:\Users\username\venv_my_enviroment\Lib\site-packages\django\utils\asyncio.py", line 26, in inner
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\username\venv_my_enviroment\Lib\site-packages\django\db\backends\base\base.py", line 256, in connect
    self.connection = self.get_new_connection(conn_params)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\username\venv_my_enviroment\Lib\site-packages\django\utils\asyncio.py", line 26, in inner
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\username\venv_my_enviroment\Lib\site-packages\django\db\backends\postgresql\base.py", line 350, in get_new_connection
    connection = self.Database.connect(**conn_params)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\username\venv_my_enviroment\Lib\site-packages\psycopg2\__init__.py", line 122, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 69: invalid start byte

自分で試したこと

・同様のエラーをインターネットで調べた。
 →PC名の変更(変化なし)
 →コード内に半角英数字以外の文字がないか確認(コメント以外なし)
 →エラーのログが変数に代入されている可能性(実力不足で確認できず)

0

2Answer

Comments

  1. @6110

    Questioner

    回答ありがとうございます。
    投稿していただいた通りmanage.pyの文字コードを確認してみたところ、しっかりutf-8になっていました。
    念のためエラーコード内に出ているすべてのファイルを確認してみましたが、すべてutf-8でした。

  2. Djangoのバージョンはいくつですか?

    ソースコードと動作環境が合致しないことが遠因かもしれませんね。

  3. @6110

    Questioner

    ご指摘いただいた通りの可能性が高そうです。
    Djangoのバージョンは最新の5.1でした。
    もう一方の方もご指摘してくださっている通り初版のソースコードがDjango最新版に対応していない可能性がありそうですので、また後日確認してみます。
    この度は貴重なお時間を私の質問への回答へ割いてくださり本当にありがとうございました。
    今後の学習にも役立ててまいります。

  4. 納得できたのであれば、本問をクローズしましょう。

  5. @6110

    Questioner

    承知しました。ありがとうございます。

初版と書いておられますが、お読みになっているのはこの本でしょうか? (第2版・第3版ではなく)↓
https://www.shoeisha.co.jp/book/detail/9784798162508

上記のサイトで動作環境を確認してみたのですが、【Djangoの対応バージョン】が Django2.2 となっております。Django2 系はすでにサポート切れのバージョンですので、問題があっても不思議はなく、また Django2 系をお使いで他は最新となると、環境の不整合が起きている可能性があり、その場合は対処は難しいかと思います。
逆に Django は最新だけど、本は旧版となりますと、Django が本とは異なる動作をする可能性があり、 これまた対処は難しいかと思います。

あまり参考にならない回答で申し訳ありませんが、今一度動作環境を確認してはいかがでしょう。

1Like

Comments

  1. @6110

    Questioner

    回答ありがとうございます。
    投稿していただいた通り確認したところDjangoのバージョンは最新の5.1でした。
    また使用している本は貼ってくださったURLのものです。
    なのでご指摘いただいたように本と異なる動作をしている可能性が高そうです。
    ただ安かったからという理由で確認もせず初版を購入した自分の安直な行動を反省しております。
    近所の図書館に新しい版のものが置いてあるそうなので後日確認してみます。
    この度は貴重なお時間を私の質問への回答へ割いてくださり本当にありがとうございました。
    今後の学習にも役立ててまいります。

Your answer might help someone💌