I'm trying to install the forecast extension with weewx 5.2. When I restart weewx I'm getting this error immediately. Any suggestions?
Feb 28 19:31:02 wxpi sudo[8562]: pam_unix(sudo:session): session closed for user root
Feb 28 19:31:02 wxpi weewxd[8567]: INFO __main__: Initializing weewxd version 5.2.0
Feb 28 19:31:02 wxpi weewxd[8567]: INFO __main__: Command line: /usr/share/weewx/weewxd.py /etc/weewx/weewx.conf
Feb 28 19:31:02 wxpi weewxd[8567]: INFO __main__: Using Python: 3.13.5 (main, Jun 25 2025, 18:55:22) [GCC 14.2.0]
Feb 28 19:31:02 wxpi weewxd[8567]: INFO __main__: Located at: /usr/bin/python3
Feb 28 19:31:02 wxpi weewxd[8567]: INFO __main__: Platform: Linux-6.12.47+rpt-rpi-v8-aarch64-with-glibc2.41
Feb 28 19:31:02 wxpi weewxd[8567]: INFO __main__: Locale: 'en_GB.UTF-8'
Feb 28 19:31:02 wxpi weewxd[8567]: INFO __main__: Entry path: /usr/share/weewx/weewxd.py
Feb 28 19:31:02 wxpi weewxd[8567]: INFO __main__: WEEWX_ROOT: /etc/weewx
Feb 28 19:31:02 wxpi weewxd[8567]: INFO __main__: Config file: /etc/weewx/weewx.conf
Feb 28 19:31:02 wxpi weewxd[8567]: INFO __main__: User module: /etc/weewx/bin/user
Feb 28 19:31:02 wxpi weewxd[8567]: INFO __main__: Debug: 0
Feb 28 19:31:02 wxpi weewxd[8567]: INFO __main__: User: weewx
Feb 28 19:31:02 wxpi weewxd[8567]: INFO __main__: Group: weewx
Feb 28 19:31:02 wxpi weewxd[8567]: INFO __main__: Groups: weewx
Feb 28 19:31:02 wxpi weewxd[8567]: INFO weewx.engine: Loading station type DavisConsoleAPI (user.davisconsoleapi)
Feb 28 19:31:03 wxpi weewxd[8567]: INFO user.davisconsoleapi: DavisConsoleAPI driver version is 0.43
Feb 28 19:31:03 wxpi weewxd[8567]: INFO user.davisconsoleapi: polling interval is 300
Feb 28 19:31:03 wxpi weewxd[8567]: INFO weewx.engine: StdConvert target unit is 0x1
Feb 28 19:31:03 wxpi weewxd[8567]: INFO weewx.wxservices: StdWXCalculate will use data binding wx_binding
Feb 28 19:31:03 wxpi weewxd[8567]: INFO weewx.engine: Archive will use data binding wx_binding
Feb 28 19:31:03 wxpi weewxd[8567]: INFO weewx.engine: Record generation will be attempted in 'hardware'
Feb 28 19:31:03 wxpi weewxd[8567]: INFO weewx.engine: Using archive interval of 300 seconds (specified in weewx configuration)
Feb 28 19:31:03 wxpi weewxd[8567]: /etc/weewx/bin/user/forecast.py:3423: SyntaxWarning: invalid escape sequence '\d'
Feb 28 19:31:03 wxpi weewxd[8567]: _LATLON = re.compile('[\d\+\-]+,[\d\+\-]+')
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: Caught unrecoverable exception:
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** No module named 'six'
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** Traceback (most recent call last):
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** File "/usr/share/weewx/weewxd.py", line 121, in main
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** engine = weewx.engine.StdEngine(config_dict)
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** File "/usr/share/weewx/weewx/engine.py", line 89, in __init__
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** self.loadServices(config_dict)
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** File "/usr/share/weewx/weewx/engine.py", line 157, in loadServices
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** obj = weeutil.weeutil.get_object(svc)(self, config_dict)
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** File "/usr/share/weewx/weeutil/weeutil.py", line 1404, in get_object
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** module = importlib.import_module(module_name)
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** File "/usr/lib/python3.13/importlib/__init__.py", line 88, in import_module
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** return _bootstrap._gcd_import(name[level:], package, level)
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** File "<frozen importlib._bootstrap_external>", line 1026, in exec_module
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** File "/etc/weewx/bin/user/forecast.py", line 531, in <module>
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** import six.moves.http_client
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** ModuleNotFoundError: No module named 'six'
Feb 28 19:31:03 wxpi weewxd[8567]: CRITICAL __main__: **** Exiting.
Feb 28 19:31:03 wxpi weewxd[8567]: Traceback (most recent call last):
Feb 28 19:31:03 wxpi weewxd[8567]: File "/usr/share/weewx/weewxd.py", line 226, in <module>
Feb 28 19:31:03 wxpi weewxd[8567]: main()
Feb 28 19:31:03 wxpi weewxd[8567]: ~~~~^^
Feb 28 19:31:03 wxpi weewxd[8567]: File "/usr/share/weewx/weewxd.py", line 121, in main
Feb 28 19:31:03 wxpi weewxd[8567]: engine = weewx.engine.StdEngine(config_dict)
Feb 28 19:31:03 wxpi weewxd[8567]: File "/usr/share/weewx/weewx/engine.py", line 89, in __init__
Feb 28 19:31:03 wxpi weewxd[8567]: self.loadServices(config_dict)
Feb 28 19:31:03 wxpi weewxd[8567]: ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
Feb 28 19:31:03 wxpi weewxd[8567]: File "/usr/share/weewx/weewx/engine.py", line 157, in loadServices
Feb 28 19:31:03 wxpi weewxd[8567]: obj = weeutil.weeutil.get_object(svc)(self, config_dict)
Feb 28 19:31:03 wxpi weewxd[8567]: ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
Feb 28 19:31:03 wxpi weewxd[8567]: File "/usr/share/weewx/weeutil/weeutil.py", line 1404, in get_object
Feb 28 19:31:03 wxpi weewxd[8567]: module = importlib.import_module(module_name)
Feb 28 19:31:03 wxpi weewxd[8567]: File "/usr/lib/python3.13/importlib/__init__.py", line 88, in import_module
Feb 28 19:31:03 wxpi weewxd[8567]: return _bootstrap._gcd_import(name[level:], package, level)
Feb 28 19:31:03 wxpi weewxd[8567]: ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Feb 28 19:31:03 wxpi weewxd[8567]: File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
Feb 28 19:31:03 wxpi weewxd[8567]: File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
Feb 28 19:31:03 wxpi weewxd[8567]: File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
Feb 28 19:31:03 wxpi weewxd[8567]: File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
Feb 28 19:31:03 wxpi weewxd[8567]: File "<frozen importlib._bootstrap_external>", line 1026, in exec_module
Feb 28 19:31:03 wxpi weewxd[8567]: File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
Feb 28 19:31:03 wxpi weewxd[8567]: File "/etc/weewx/bin/user/forecast.py", line 531, in <module>
Feb 28 19:31:03 wxpi weewxd[8567]: import six.moves.http_client
Feb 28 19:31:03 wxpi weewxd[8567]: ModuleNotFoundError: No module named 'six'
Feb 28 19:31:03 wxpi systemd[1]: weewx.service: Main process exited, code=exited, status=1/FAILURE
Feb 28 19:31:03 wxpi systemd[1]: weewx.service: Failed with result 'exit-code'.
Feb 28 19:31:03 wxpi systemd[1]: weewx.service: Consumed 1.701s CPU time.
Thank you.