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.