Thanks so much for your reply. I'm running Ubuntu server 24.04 and pip isn't installed by default so when I installed it by running 'apt install pip', I noticed that the python3-setuputils package was installed and it appears that this has fixed the issue. For others who run into this issue, this could probably be fixed by just installing the python3-setuputils package
Thanks again for your help and hopefully this helps someone in the future. On Tuesday, 14 October 2025 at 12:03:17 pm UTC+10 Jobu wrote: > distutils was deprecated . . . maybe in python 3.12 > > I think setuptools has a distutils compatibility layer, so you could try > installing that with pip. > > Good luck and maybe someone wiser will come along > > On Monday, October 13, 2025 at 8:42:15 PM UTC-5 [email protected] > wrote: > >> Hi everyone, >> >> I'm running weewx v5.1.0 and recently installed the windy extension from >> Matthew Wall's weewx-windy github but I'm getting a ModuleNotFoundError: No >> module named 'distutils' error message when weewx attempts to start. I've >> logged an issue in the github for this project but it appears that the >> extension might be stale since there hasn't been an update for 5 years. >> Would anyone know of a workaround I could use to get this extension working >> or is there an alternative extension I could use for windy.com? >> >> Thanks, >> >> John >> >> --- >> syslog: >> >> 2025-10-13T22:45:28.785720+00:00 weewx weewxd[2702]: INFO >> user.interceptor: shutting down server thread >> 2025-10-13T22:45:29.218019+00:00 weewx weewxd[2702]: CRITICAL __main__: >> Caught unrecoverable exception: >> 2025-10-13T22:45:29.218246+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** No module named 'distutils' >> 2025-10-13T22:45:29.221213+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** Traceback (most recent call last): >> 2025-10-13T22:45:29.221525+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** File "/usr/share/weewx/weewxd.py", line 121, in main >> 2025-10-13T22:45:29.221742+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** engine = weewx.engine.StdEngine(config_dict) >> 2025-10-13T22:45:29.223622+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >> 2025-10-13T22:45:29.223741+00:00 weewx weewxd[2702]: Traceback (most >> recent call last): >> 2025-10-13T22:45:29.224034+00:00 weewx weewxd[2702]: File >> "/usr/share/weewx/weewxd.py", line 226, in <module> >> 2025-10-13T22:45:29.224090+00:00 weewx weewxd[2702]: main() >> 2025-10-13T22:45:29.224130+00:00 weewx weewxd[2702]: File >> "/usr/share/weewx/weewxd.py", line 121, in main >> 2025-10-13T22:45:29.224178+00:00 weewx weewxd[2702]: engine = >> weewx.engine.StdEngine(config_dict) >> 2025-10-13T22:45:29.224222+00:00 weewx weewxd[2702]: >> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >> 2025-10-13T22:45:29.224262+00:00 weewx weewxd[2702]: File >> "/usr/share/weewx/weewx/engine.py", line 89, in __init__ >> 2025-10-13T22:45:29.224300+00:00 weewx weewxd[2702]: >> self.loadServices(config_dict) >> 2025-10-13T22:45:29.224337+00:00 weewx weewxd[2702]: File >> "/usr/share/weewx/weewx/engine.py", line 157, in loadServices >> 2025-10-13T22:45:29.224378+00:00 weewx weewxd[2702]: obj = >> weeutil.weeutil.get_object(svc)(self, config_dict) >> 2025-10-13T22:45:29.224423+00:00 weewx weewxd[2702]: >> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >> 2025-10-13T22:45:29.224463+00:00 weewx weewxd[2702]: File >> "/usr/share/weewx/weeutil/weeutil.py", line 1404, in get_object >> 2025-10-13T22:45:29.224541+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** File "/usr/share/weewx/weewx/engine.py", line 89, in __init__ >> 2025-10-13T22:45:29.224618+00:00 weewx weewxd[2702]: module = >> importlib.import_module(module_name) >> 2025-10-13T22:45:29.224954+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** self.loadServices(config_dict) >> 2025-10-13T22:45:29.225097+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** File "/usr/share/weewx/weewx/engine.py", line 157, in loadServices >> 2025-10-13T22:45:29.225188+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** obj = weeutil.weeutil.get_object(svc)(self, config_dict) >> 2025-10-13T22:45:29.227728+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >> 2025-10-13T22:45:29.227815+00:00 weewx weewxd[2702]: >> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >> 2025-10-13T22:45:29.227918+00:00 weewx weewxd[2702]: File >> "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module >> 2025-10-13T22:45:29.227976+00:00 weewx weewxd[2702]: return >> _bootstrap._gcd_import(name[level:], package, level) >> 2025-10-13T22:45:29.228028+00:00 weewx weewxd[2702]: >> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >> 2025-10-13T22:45:29.228070+00:00 weewx weewxd[2702]: File "<frozen >> importlib._bootstrap>", line 1387, in _gcd_import >> 2025-10-13T22:45:29.228115+00:00 weewx weewxd[2702]: File "<frozen >> importlib._bootstrap>", line 1360, in _find_and_load >> 2025-10-13T22:45:29.228156+00:00 weewx weewxd[2702]: File "<frozen >> importlib._bootstrap>", line 1331, in _find_and_load_unlocked >> 2025-10-13T22:45:29.228194+00:00 weewx weewxd[2702]: File "<frozen >> importlib._bootstrap>", line 935, in _load_unlocked >> 2025-10-13T22:45:29.228236+00:00 weewx weewxd[2702]: File "<frozen >> importlib._bootstrap_external>", line 995, in exec_module >> 2025-10-13T22:45:29.228280+00:00 weewx weewxd[2702]: File "<frozen >> importlib._bootstrap>", line 488, in _call_with_frames_removed >> 2025-10-13T22:45:29.228328+00:00 weewx weewxd[2702]: File >> "/etc/weewx/bin/user/windy.py", line 46, in <module> >> 2025-10-13T22:45:29.228371+00:00 weewx weewxd[2702]: from >> distutils.version import StrictVersion >> 2025-10-13T22:45:29.228409+00:00 weewx weewxd[2702]: ModuleNotFoundError: >> No module named 'distutils' >> 2025-10-13T22:45:29.228466+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** File "/usr/share/weewx/weeutil/weeutil.py", line 1404, in >> get_object >> 2025-10-13T22:45:29.228517+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** module = importlib.import_module(module_name) >> 2025-10-13T22:45:29.228584+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >> 2025-10-13T22:45:29.228629+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** File "/usr/lib/python3.12/importlib/__init__.py", line 90, in >> import_module >> 2025-10-13T22:45:29.228683+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** return _bootstrap._gcd_import(name[level:], package, level) >> 2025-10-13T22:45:29.228738+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >> 2025-10-13T22:45:29.228789+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** File "<frozen importlib._bootstrap>", line 1387, in _gcd_import >> 2025-10-13T22:45:29.228834+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** File "<frozen importlib._bootstrap>", line 1360, in _find_and_load >> 2025-10-13T22:45:29.228878+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** File "<frozen importlib._bootstrap>", line 1331, in >> _find_and_load_unlocked >> 2025-10-13T22:45:29.228922+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** File "<frozen importlib._bootstrap>", line 935, in _load_unlocked >> 2025-10-13T22:45:29.228964+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** File "<frozen importlib._bootstrap_external>", line 995, in >> exec_module >> 2025-10-13T22:45:29.229007+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** File "<frozen importlib._bootstrap>", line 488, in >> _call_with_frames_removed >> 2025-10-13T22:45:29.229045+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** File "/etc/weewx/bin/user/windy.py", line 46, in <module> >> 2025-10-13T22:45:29.229087+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** from distutils.version import StrictVersion >> 2025-10-13T22:45:29.229150+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** ModuleNotFoundError: No module named 'distutils' >> 2025-10-13T22:45:29.229195+00:00 weewx weewxd[2702]: CRITICAL __main__: >> **** Exiting. >> 2025-10-13T22:45:29.263650+00:00 weewx systemd[1]: weewx.service: Main >> process exited, code=exited, status=1/FAILURE >> 2025-10-13T22:45:29.264708+00:00 weewx systemd[1]: weewx.service: Failed >> with result 'exit-code'. > > -- You received this message because you are subscribed to the Google Groups "weewx-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/weewx-user/fbc81b1f-c756-4d5d-be72-b98b701d11c8n%40googlegroups.com.
