Hi,

I had trouble installing weewx using MySQL on OpenSuse: following the 
directions in the installation pages of de weewx documentation did not 
help. OpenSuse does not provide the MySQL libraries for Python that other 
distributions seem to deliver. After installation journalctl shows the 
following error:

Mar 17 10:48:30 server systemd[1]: Started weewx.
Mar 17 10:48:30 server [RPM][28003]: install weewx-3.9.1-2.suse.noarch: 
success
Mar 17 10:48:30 server [RPM][28003]: erase weewx-3.9.0-1.suse.noarch: 
success
Mar 17 10:48:30 server [RPM][28003]: install weewx-3.9.1-2.suse.noarch: 
success
Mar 17 10:48:30 server [RPM][28003]: Transaction ID 5c8e17ed finished: 0
Mar 17 10:48:30 server weewx[28017]: engine: Initializing weewx version 
3.9.1
Mar 17 10:48:30 server weewx[28017]: engine: Using Python 2.7.14 (default, 
Oct 12 2017, 15:50:02) [GCC]
Mar 17 10:48:30 server weewx[28017]: engine: Platform 
Linux-4.12.14-lp150.12.48-default-x86_64-with-SuSE-15.0-x86_64
Mar 17 10:48:30 server weewx[28017]: engine: Locale is 'en_US.UTF-8'
Mar 17 10:48:30 server weewx[28017]: engine: pid file is /var/run/weewx.pid
Mar 17 10:48:30 server weewx[28044]: engine: Using configuration file 
/etc/weewx/weewx.conf
Mar 17 10:48:30 server weewx[28044]: engine: Loading station type 
SocketLogger (user.socketlogger)
Mar 17 10:48:30 server weewx[28044]: SocketLogger: Connecting to socket on 
localhost port 2999
Mar 17 10:48:30 server systemd[1]: weewx.service: Supervising process 28044 
which is not our child. We'll most likely >
Mar 17 10:48:30 server weewx[28044]: engine: StdConvert target unit is 0x10
Mar 17 10:48:30 server weewx[28044]: wxcalculate: The following values will 
be calculated: barometer=prefer_hardware, >
Mar 17 10:48:30 server weewx[28044]: wxcalculate: The following algorithms 
will be used for calculations: altimeter=aa>
Mar 17 10:48:30 server weewx[28044]: engine: Archive will use data binding 
wx_binding
Mar 17 10:48:30 server weewx[28044]: engine: Record generation will be 
attempted in 'software'
Mar 17 10:48:30 server weewx[28044]: engine: Using archive interval of 600 
seconds (software record generation)
Mar 17 10:48:30 server weewx[28044]: engine: Caught unrecoverable exception 
in engine:
Mar 17 10:48:30 server weewx[28044]:     ****  No module named MySQLdb
Mar 17 10:48:30 server weewx[28044]:     ****  Traceback (most recent call 
last):
Mar 17 10:48:30 server weewx[28044]:     ****    File 
"/usr/share/weewx/weewx/engine.py", line 884, in main
Mar 17 10:48:30 server weewx[28044]:     ****      engine = 
engine_class(config_dict)
Mar 17 10:48:30 server weewx[28044]:     ****    File 
"/usr/share/weewx/weewx/engine.py", line 78, in __init__
Mar 17 10:48:30 server weewx[28044]:     ****      
self.loadServices(config_dict)
Mar 17 10:48:30 server weewx[28044]:     ****    File 
"/usr/share/weewx/weewx/engine.py", line 142, in loadServices
Mar 17 10:48:30 server weewx[28044]:     ****      
self.service_obj.append(weeutil.weeutil._get_object(svc)(self, config_dict))
Mar 17 10:48:30 server weewx[28044]:     ****    File 
"/usr/share/weewx/weewx/engine.py", line 500, in __init__
Mar 17 10:48:30 server weewx[28044]:     ****      
self.setup_database(config_dict)
Mar 17 10:48:30 server weewx[28044]:     ****    File 
"/usr/share/weewx/weewx/engine.py", line 608, in setup_database
Mar 17 10:48:30 server weewx[28044]:     ****      dbmanager = 
self.engine.db_binder.get_manager(self.data_binding, initialize=True)
Mar 17 10:48:30 server weewx[28044]:     ****    File 
"/usr/share/weewx/weewx/manager.py", line 872, in get_manager
Mar 17 10:48:30 server weewx[28044]:     ****      
self.manager_cache[data_binding] = open_manager(manager_dict, initialize)
Mar 17 10:48:30 server weewx[28044]:     ****    File 
"/usr/share/weewx/weewx/manager.py", line 1021, in open_manager
Mar 17 10:48:30 server weewx[28044]:     ****      manager_dict['schema'])
Mar 17 10:48:30 server weewx[28044]:     ****    File 
"/usr/share/weewx/weewx/manager.py", line 128, in open_with_create
Mar 17 10:48:30 server weewx[28044]:     ****      connection = 
weedb.connect(database_dict)
Mar 17 10:48:30 server weewx[28044]:     ****    File 
"/usr/share/weewx/weedb/__init__.py", line 86, in connect
Mar 17 10:48:30 server weewx[28044]:     ****      
__import__(db_dict['driver'])
Mar 17 10:48:30 server weewx[28044]:     ****    File 
"/usr/share/weewx/weedb/mysql.py", line 10, in <module>
Mar 17 10:48:30 server weewx[28044]:     ****      import MySQLdb
Mar 17 10:48:30 server weewx[28044]:     ****  ImportError: No module named 
MySQLdb
Mar 17 10:48:30 server weewx[28044]:     ****  Exiting.
Mar 17 10:48:30 server systemd[1]: weewx.service: Main process exited, 
code=exited, status=1/FAILURE
Mar 17 10:48:30 server systemd[1]: weewx.service: Unit entered failed state.
Mar 17 10:48:30 server systemd[1]: weewx.service: Failed with result 
'exit-code'.

I have managed to get weewx working on OpenSuse by installing the module 
Python2-PyMySQL and changing the file /usr/share/weewx/weedb/mysql.py. The 
changes are very limited:

diff mysql.py mysql.py-orig
10,15c10,11
< #DK
< #import MySQLdb
< #from _mysql_exceptions import DatabaseError, IntegrityError, 
ProgrammingError, OperationalError
< import pymysql as MySQLdb
< from pymysql import DatabaseError, IntegrityError, ProgrammingError, 
OperationalError
< #DK end
---
> import MySQLdb
> from _mysql_exceptions import DatabaseError, IntegrityError, 
ProgrammingError, OperationalError
124,128d119
<
< #DK, hardcoded socket
< #       connection = MySQLdb.connect(host=host, port=int(port), 
user=user, passwd=password,
< #                                     db=database_name, **kwargs)
< #        weedb.Connection.__init__(self, connection, database_name, 
'mysql')
130c121,122
<                                      db=database_name, 
unix_socket='/var/run/mysql/mysql.sock', **kwargs)
---
>                                      db=database_name, **kwargs)
>
303,304c295
< #DK if connect._server_version >= (5, 5):
<     if connect.server_version >= (5, 5):
---
>     if connect._server_version >= (5, 5):

This fix has worked for weewx from V3.7 until the current version (V3.9.1) 
without change. Perhaps there could be some permanent fix in the weewx kit?

Regards,
dkorevaar

-- 
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].
For more options, visit https://groups.google.com/d/optout.

Reply via email to