Odd locale error that has disappeared on reboot.

Chris Green cl at isbd.net
Tue Dec 7 10:28:25 EST 2021


I have a very short Python program that runs on one of my Raspberry
Pis to collect temperatures from a 1-wire sensor and write them to a
database:-

    #!/usr/bin/python3
    #
    #
    # read temperature from 1-wire sensor and store in database with date and time
    #
    import sqlite3
    import time

    ftxt = str(open("/sys/bus/w1/devices/28-01204e1e64c3/w1_slave").read(100))
    temp = (float(ftxt[ftxt.find("t=") +2:]))/1000
    #
    #
    # insert date, time and temperature into the database
    #
    tdb = sqlite3.connect("/home/chris/.cfg/share/temperature/temperature.db")
    cr = tdb.cursor()
    dt = time.strftime("%Y-%m-%d %H:%M")
    cr.execute("Insert INTO temperatures (DateTime, Temperature) VALUES(?, round(?, 2))", (dt, temp)
    )
    tdb.commit()
    tdb.close()

It's run by cron every 10 minutes.


At 03:40 last night it suddenly started throwing the following error every
time it ran:-

    Fatal Python error: initfsencoding: Unable to get the locale encoding
    LookupError: unknown encoding: UTF-8

    Current thread 0xb6f8db40 (most recent call first):
    Aborted

Running the program from the command line produced the same error.
Restarting the Pi system has fixed the problem.


What could have caused this?  I certainly wasn't around at 03:40! :-)
There aren't any automatic updates enabled on the system, the only 
thing that might have been going on was a backup as that Pi is also
my 'NAS' with a big USB drive connected to it.  The backups have been
running without problems for more than a year.  Looking at the system
logs shows that a backup was started at 03:35 so I suppose that *could*
have provoked something but I fail to understand how.

-- 
Chris Green
·


More information about the Python-list mailing list