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.

Reply via email to