The class name is ExtendedStatistics, not XStatsService. Look at the file
readme.txt, located in the xstats subdirectory.

On Tue, Jun 2, 2020 at 2:25 PM Paul Bartholdi <paul.bartho...@gmail.com>
wrote:

> Dear Thomas,
>
> I moved this morning from 4.1.0 to 4.1.1 and discovered the error (in
> /var/log/syslog):
> Module 'user.xstats' has no attribute 'XStatsService' when searching ...
>
> In fact it was already there in 4.1.0, but I didn't noticed, as it had no
> apparent effects.
>
> I tries to figure out what/where is wrong, but no success. Then I found
> you answer, implemented it and the result is catastrophic. Weewx stops
> working.
> Running  "wee_extension --uninstall "  is not better.  (Error: No module
> named 'user.xstats', seems normal, but I don;t know where to go.
> May be I should better reinstall weewx.
>
> Running python 3, on a Debian 10.4 X64 / DEBUG is ON.
>
> This is the extract from syslog:
>
>  ****  Module 'user.xstats' has no attribute 'XStatsService' when
> searching for 'user.xstats.XStatsService'
> Jun  2 23:04:57 aragorn weewx[4012] CRITICAL __main__:     ****  Traceback
> (most recent call last):
> Jun  2 23:04:57 aragorn weewx[4012] CRITICAL __main__:     ****    File
> "/usr/share/weewx/weeutil/weeutil.py", line 1098, in get_object
> Jun  2 23:04:57 aragorn weewx[4012] CRITICAL __main__:     ****      mod =
> getattr(mod, part)
> Jun  2 23:04:57 aragorn weewx[4012] CRITICAL __main__:     ****
> AttributeError: module 'user.xstats' has no attribute 'XStatsService'
> Jun  2 23:04:57 aragorn weewx[4012] CRITICAL __main__:     ****
> Jun  2 23:04:57 aragorn weewx[4012] CRITICAL __main__:     ****  During
> handling of the above exception, another exception occurred:
> Jun  2 23:04:57 aragorn weewx[4012] CRITICAL __main__:     ****
> Jun  2 23:04:57 aragorn weewx[4012] CRITICAL __main__:     ****  Traceback
> (most recent call last):
> Jun  2 23:04:57 aragorn weewx[4012] CRITICAL __main__:     ****    File
> "/usr/share/weewx/weewxd", line 148, in main
> Jun  2 23:04:57 aragorn weewx[4012] CRITICAL __main__:     ****
> engine = weewx.engine.StdEngine(config_dict)
> Jun  2 23:04:57 aragorn weewx[4012] CRITICAL __main__:     ****    File
> "/usr/share/weewx/weewx/engine.py", line 75, in __init__
> Jun  2 23:04:57 aragorn weewx[4012] CRITICAL __main__:     ****
> self.loadServices(config_dict)
> Jun  2 23:04:57 aragorn weewx[4012] CRITICAL __main__:     ****    File
> "/usr/share/weewx/weewx/engine.py", line 138, in loadServices
> Jun  2 23:04:57 aragorn weewx[4012] CRITICAL __main__:     ****      obj =
> weeutil.weeutil.get_object(svc)(self,config_dict)
> Jun  2 23:04:57 aragorn weewx[4012] CRITICAL __main__:     ****    File
> "/usr/share/weewx/weeutil/weeutil.py", line 1102, in get_object
> Jun  2 23:04:57 aragorn weewx[4012] CRITICAL __main__:     ****
> "Module '%s' has no attribute '%s' when searching for '%s'" %
> (mod.__name__, part, module_class))
> Jun  2 23:04:57 aragorn weewx[4012] CRITICAL __main__:     ****
> AttributeError: Module 'user.xstats' has no attribute 'XStatsService' when
> searching for 'user.xstats.XStatsService'
> Jun  2 23:04:57 aragorn weewx[4012] CRITICAL __main__:     ****  Exiting.
>
> Any help will be welcome, but no hurry! It is time to sleep form me...
>
> Best regards and thanks,     Paul
>
>
> Le jeudi 18 janvier 2018 00:33:55 UTC+1, Thomas Keffer a écrit :
>>
>> While xstats is included in the weeWX distribution as an example of an
>> extension, it is not part of the code base. If you want to use it, you
>> would have to install it first.
>>
>> It's location depends on the install method you used
>> <http://weewx.com/docs/usersguide.htm#Where_to_find_things>,
>> typically either /usr/share/doc/weewx/examples/xstats or
>> /home/weewx/examples/xstats.
>>
>> Installation instructions are included in the accompanying readme.txt
>> file, located in the subdirectory.
>>
>> -tk
>>
>>
>> On Wed, Jan 17, 2018 at 3:56 PM, ON9CB <craig...@gmail.com> wrote:
>>
>>> Hi All,
>>>
>>> Really struggling to make sense of this one.  Just completed a fresh
>>> install of 3.8.0 on a fresh install of Raspbian Stretch on a Pi3B after a
>>> replacement SD card - failed after only a week in service!
>>>
>>> Copied the backup weewx.conf, skins, and DB's and all looked good until
>>> I got the xstats module missing error, followed by 'launch of report thread
>>> aborted...'.  The aborted thread errors started after I upgraded to 3.8.0.
>>> The xstats errors started today.  Debug report is attached.
>>>
>>> Also, the graphs are all updating nicely, but apparently no index page
>>> is being generated.
>>>
>>> Thanks in advance for any assistance!!
>>>
>>> Craig
>>>
>>>
>>>
>>> >>>>>>>>>>>>>>>>>>>
>>>
>>> Jan 17 23:09:12 Weewx weewx[1828]: manager: Added record 2018-01-17
>>> 23:09:00 CET (1516226940) to database 'weewx.sdb'
>>> Jan 17 23:09:12 Weewx weewx[1828]: manager: Added record 2018-01-17
>>> 23:09:00 CET (1516226940) to daily summary in 'weewx.sdb'
>>> Jan 17 23:10:10 Weewx weewx[1828]: manager: Added record 2018-01-17
>>> 23:10:11 CET (1516227011) to database 'cmon.sdb'
>>> Jan 17 23:10:10 Weewx weewx[1828]: manager: Added record 2018-01-17
>>> 23:10:11 CET (1516227011) to daily summary in 'cmon.sdb'
>>> Jan 17 23:10:12 Weewx weewx[1828]: manager: Added record 2018-01-17
>>> 23:10:00 CET (1516227000) to database 'weewx.sdb'
>>> Jan 17 23:10:12 Weewx weewx[1828]: manager: Added record 2018-01-17
>>> 23:10:00 CET (1516227000) to daily summary in 'weewx.sdb'
>>> Jan 17 23:10:13 Weewx weewx[1828]: restx: PWSWeather: Published record
>>> 2018-01-17 23:10:00 CET (1516227000)
>>> Jan 17 23:10:13 Weewx weewx[1828]: restx: AWEKAS: Published record
>>> 2018-01-17 23:10:00 CET (1516227000)
>>> Jan 17 23:10:13 Weewx weewx[1828]: restx: WOW: Published record
>>> 2018-01-17 23:10:00 CET (1516227000)
>>> Jan 17 23:10:13 Weewx weewx[1828]:         ****  Traceback (most recent
>>> call last):
>>> Jan 17 23:10:13 Weewx weewx[1828]:         ****    File
>>> "/usr/share/weewx/weewx/reportengine.py", line 239, in run
>>> Jan 17 23:10:13 Weewx weewx[1828]:         ****      obj.start()
>>> Jan 17 23:10:13 Weewx weewx[1828]:         ****    File
>>> "/usr/share/weewx/weewx/reportengine.py", line 273, in start
>>> Jan 17 23:10:13 Weewx weewx[1828]:         ****      self.run()
>>> Jan 17 23:10:13 Weewx weewx[1828]:         ****    File
>>> "/usr/share/weewx/weewx/cheetahgenerator.py", line 155, in run
>>> Jan 17 23:10:13 Weewx weewx[1828]:         ****
>>> self.initExtensions(gen_dict[section_name])
>>> Jan 17 23:10:13 Weewx weewx[1828]:         ****    File
>>> "/usr/share/weewx/weewx/cheetahgenerator.py", line 197, in initExtensions
>>> Jan 17 23:10:13 Weewx weewx[1828]:         ****      class_ =
>>> weeutil.weeutil._get_object(x)
>>> Jan 17 23:10:13 Weewx weewx[1828]:         ****    File
>>> "/usr/share/weewx/weeutil/weeutil.py", line 1132, in _get_object
>>> Jan 17 23:10:13 Weewx weewx[1828]:         ****      mod =
>>> __import__(module)
>>> Jan 17 23:10:13 Weewx weewx[1828]:         ****  ImportError: No module
>>> named xstats
>>> Jan 17 23:10:13 Weewx weewx[1828]: restx: CWOP: Published record
>>> 2018-01-17 23:10:00 CET (1516227000)
>>> Jan 17 23:10:19 Weewx weewx[1828]: imagegenerator: Generated 13 images
>>> for sofaskin in 6.22 seconds
>>> Jan 17 23:10:19 Weewx weewx[1828]:         ****  Traceback (most recent
>>> call last):
>>> Jan 17 23:10:19 Weewx weewx[1828]:         ****    File
>>> "/usr/share/weewx/weewx/reportengine.py", line 239, in run
>>> Jan 17 23:10:19 Weewx weewx[1828]:         ****      obj.start()
>>> Jan 17 23:10:19 Weewx weewx[1828]:         ****    File
>>> "/usr/share/weewx/weewx/reportengine.py", line 273, in start
>>> Jan 17 23:10:19 Weewx weewx[1828]:         ****      self.run()
>>> Jan 17 23:10:19 Weewx weewx[1828]:         ****    File
>>> "/usr/share/weewx/weewx/cheetahgenerator.py", line 155, in run
>>> Jan 17 23:10:19 Weewx weewx[1828]:         ****
>>> self.initExtensions(gen_dict[section_name])
>>> Jan 17 23:10:19 Weewx weewx[1828]:         ****    File
>>> "/usr/share/weewx/weewx/cheetahgenerator.py", line 197, in initExtensions
>>> Jan 17 23:10:19 Weewx weewx[1828]:         ****      class_ =
>>> weeutil.weeutil._get_object(x)
>>> Jan 17 23:10:19 Weewx weewx[1828]:         ****    File
>>> "/usr/share/weewx/weeutil/weeutil.py", line 1132, in _get_object
>>> Jan 17 23:10:19 Weewx weewx[1828]:         ****      mod =
>>> __import__(module)
>>> Jan 17 23:10:19 Weewx weewx[1828]:         ****  ImportError: No module
>>> named xstats
>>> Jan 17 23:10:26 Weewx weewx[1828]: imagegenerator: Generated 13 images
>>> for sofaskin_EN in 6.63 seconds
>>> Jan 17 23:10:26 Weewx weewx[1828]: copygenerator: copied 0 files to
>>> /var/www/html/sofa
>>> Jan 17 23:10:26 Weewx weewx[1828]: cheetahgenerator: Generated 1 files
>>> for report cmon in 0.31 seconds
>>> Jan 17 23:11:10 Weewx weewx[1828]: manager: Added record 2018-01-17
>>> 23:11:10 CET (1516227070) to database 'cmon.sdb'
>>> Jan 17 23:11:10 Weewx weewx[1828]: manager: Added record 2018-01-17
>>> 23:11:10 CET (1516227070) to daily summary in 'cmon.sdb'
>>> Jan 17 23:11:14 Weewx weewx[1828]: manager: Added record 2018-01-17
>>> 23:11:00 CET (1516227060) to database 'weewx.sdb'
>>> Jan 17 23:11:14 Weewx weewx[1828]: manager: Added record 2018-01-17
>>> 23:11:00 CET (1516227060) to daily summary in 'weewx.sdb'
>>> Jan 17 23:11:14 Weewx weewx[1828]: engine: Launch of report thread
>>> aborted: existing report thread still running
>>> Jan 17 23:12:10 Weewx weewx[1828]: manager: Added record 2018-01-17
>>> 23:12:11 CET (1516227131) to database 'cmon.sdb'
>>> Jan 17 23:12:10 Weewx weewx[1828]: manager: Added record 2018-01-17
>>> 23:12:11 CET (1516227131) to daily summary in 'cmon.sdb'
>>> Jan 17 23:12:12 Weewx weewx[1828]: manager: Added record 2018-01-17
>>> 23:12:00 CET (1516227120) to database 'weewx.sdb'
>>> Jan 17 23:12:12 Weewx weewx[1828]: manager: Added record 2018-01-17
>>> 23:12:00 CET (1516227120) to daily summary in 'weewx.sdb'
>>> Jan 17 23:12:19 Weewx weewx[1828]: engine: Launch of report thread
>>> aborted: existing report thread still running
>>>
>>> >>>>>>>>>>>>>>>>>>>>>
>>>
>>>
>>>
>>> --
>>> 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 weewx...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
> 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 weewx-user+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/weewx-user/a82786a0-02f4-4999-9afe-e7a7eb596801%40googlegroups.com
> <https://groups.google.com/d/msgid/weewx-user/a82786a0-02f4-4999-9afe-e7a7eb596801%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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 weewx-user+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/CAPq0zEACxuQoywprq%2Btx9LbhfGioAFhGoXgOLkia_6SLGV-%2Bvw%40mail.gmail.com.

Reply via email to