Closed jkwim closed 1 year ago
Your first call started python2 from somewhere, nonlocal
is a python3 keyword, this error occurs if you try to run the script using python2
Your python installation seems to be a mix of python2 and python3 - check and cleanup
Can not be reproduce
It looks like a local mixup of outdated script and/or mix of python env.
Ah! Yes, I have both.
ubuntu@ubuntu:~/tasmota/configs$ python -V
Python 2.7.18
ubuntu@ubuntu:~/tasmota/configs$ python3 -V
Python 3.8.10
Changed here and it works now:
ubuntu@ubuntu:~/tasmota/configs/decode-config-development$ more decode-config.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from __future__ import print_function
ubuntu@ubuntu:~/tasmota/configs/decode-config-development$ ./decode-config.py -s $deviceip -g System | jq
{
"bootcount": 9,
"bootcount_reset_time": 1673771115,
"cfg_crc": "0x764d",
"cfg_crc32": "0xc1a45fcc",
"cfg_holder": 4617,
"cfg_size": 4096,
"cfg_timestamp": 1673891708,
"header": {
"data": {
"crc": "0xb91e",
"crc32": "0xc1a45fcc",
"hardware": "ESP82",
"size": 4096,
"version": {
"id": "0xc030103",
"name": "12.3.1.3"
}
},
"env": {
"platform": "Linux-5.4.0-1078-raspi-aarch64-with-glibc2.29",
"python": "3.8.10",
"script": "decode-config.py v12.3.1.3 [7e18bc3]",
"system": "Linux aarch64 5.4.0-1078-raspi #89-Ubuntu SMP PREEMPT Mon Dec 5 08:38:35 UTC 2022"
},
"template": {
"crc": "0x764d",
"crc32": "0xc1a45fcc",
"size": 4096,
"version": {
"id": "0xc030103",
"name": "12.3.1.3"
}
},
"timestamp": "2023-01-16 17:55:08"
},
"version": "0xc030103"
}
I had this same problem, fixed it with the change to "python3" inside the file.
I don't know much about Python environments, but I gather this is not a bug but a configuration problem? Should I worry? How should I fix my setup? I only use it for decode-config, on this computer.
Thanks
That's nothing to worry about.
The error occurs when decode-config is started with an outdated Python V2 (has reached EOL 01 Jan 2020), but decode-config is written for Python V3.
The script expects the command python
starts a V3. This should also be the operating system default because V2 should be an exception due to EOL.
If you have both versions installed, you should configure your system so that the command python
starts a python V3, not V2 and V2 only starts when python2
is explicitly entered or simnply uninstall V2. How this works, depends on your OS, there is no general answer.
Describe the bug
To Reproduce
Steps to reproduce the behavior: 1. Program parameter: 2. Result:
Expected behavior
A clear and concise description of what you expected to happen.
Version Information
Please complete the following information
use
decode-config.py -V
to retrieve the infoSystem' information of your Tasmota data
Append
-g System
to your decode-config parameter, e. g.decode-config.py -s myconfig.dmp -g System
Additional context
Note: I wanted to use the latest development branch because I cannot use the latest release version due to limitation of reading Tasmota 12.3.1.3.
This is the version that I have using
pip3 install -r requirements.txt
This version works with Tasmota 12.1.1.2 but not with 12.3.1.3