Update by myself. In stead of trying to install python-cjson, I succeeded
with installing
sudo pip3 install ujson
All set now, data published live on my webpage.
Op woensdag 6 mei 2020 22:27:37 UTC+2 schreef Maarten van der Hoeven:
>
> Hi,
>
> hard disc crashed, rebuilding the complete environment. Backup was sound,
> no data lost.
>
> Running Ubuntu 20.04, installed Weewx4 with python 3, Belchertown 1.1 skin
> succesfully implemented. Got mosquitto running okay.
>
> Now busy implementing weewx-mqtt. Instuctions:
>
> sudo pip3 install paho-mqtt, succesful
> sudo pip3 install python-cjson. Package is found, but when trying to build
> it, it fails. What can I do? I dont want to mess with python2, and risk
> breaking dependencies. Error log from failure python-cjson:
>
> maarten@weewx:~$ sudo pip3 install python-cjson
> Collecting python-cjson
> Downloading python-cjson-1.2.2.tar.gz (12 kB)
> Building wheels for collected packages: python-cjson
> Building wheel for python-cjson (setup.py) ... error
> ERROR: Command errored out with exit status 1:
> command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize;
> sys.argv[0] = '"'"'/tmp/pip-install-zu4cgg1n/python-cjson/setup.py'"'"';
> __file__='"'"'/tmp/pip-install-zu4cgg1n/python-cjson/setup.py'"'"';f=getattr(tokenize,
>
> '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"',
> '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))'
> bdist_wheel -d /tmp/pip-wheel-3y0kj1p4
> cwd: /tmp/pip-install-zu4cgg1n/python-cjson/
> Complete output (243 lines):
> running bdist_wheel
> running build
> running build_ext
> building 'cjson' extension
> creating build
> creating build/temp.linux-x86_64-3.8
> x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG
> -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat
> -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat
> -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC
> -DMODULE_VERSION=1.2.2 -I/usr/include/python3.8 -c cjson.c -o
> build/temp.linux-x86_64-3.8/cjson.o
> cjson.c: In function ‘decode_string’:
> cjson.c:167:18: warning: implicit declaration of function
> ‘PyString_DecodeEscape’; did you mean ‘PyBytes_DecodeEscape’?
> [-Wimplicit-function-declaration]
> 167 | object = PyString_DecodeEscape(jsondata->ptr+1, len,
> NULL, 0, NULL);
> | ^~~~~~~~~~~~~~~~~~~~~
> | PyBytes_DecodeEscape
> cjson.c:167:16: warning: assignment to ‘PyObject *’ {aka ‘struct _object
> *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
> 167 | object = PyString_DecodeEscape(jsondata->ptr+1, len,
> NULL, 0, NULL);
> | ^
> cjson.c:169:18: warning: implicit declaration of function
> ‘PyString_FromStringAndSize’; did you mean ‘PyBytes_FromStringAndSize’?
> [-Wimplicit-function-declaration]
> 169 | object = PyString_FromStringAndSize(jsondata->ptr+1,
> len);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~
> | PyBytes_FromStringAndSize
> cjson.c:169:16: warning: assignment to ‘PyObject *’ {aka ‘struct _object
> *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
> 169 | object = PyString_FromStringAndSize(jsondata->ptr+1,
> len);
> | ^
> cjson.c:185:39: warning: implicit declaration of function
> ‘PyString_AsString’ [-Wimplicit-function-declaration]
> 185 | reason ? PyString_AsString(reason)
> : "bad format");
> | ^~~~~~~~~~~~~~~~~
> cjson.c:185:65: warning: pointer/integer type mismatch in conditional
> expression
> 185 | reason ? PyString_AsString(reason)
> : "bad format");
> | ^
> cjson.c: In function ‘decode_number’:
> cjson.c:295:9: warning: assignment to ‘PyObject *’ {aka ‘struct _object
> *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
> 295 | str = PyString_FromStringAndSize(jsondata->ptr, ptr -
> jsondata->ptr);
> | ^
> cjson.c:300:18: error: too many arguments to function
> ‘PyFloat_FromString’
> 300 | object = PyFloat_FromString(str, NULL);
> | ^~~~~~~~~~~~~~~~~~
> In file included from /usr/include/python3.8/Python.h:101,
> from cjson.c:5:
> /usr/include/python3.8/floatobject.h:42:24: note: declared here
> 42 | PyAPI_FUNC(PyObject *) PyFloat_FromString(PyObject*);
> | ^~~~~~~~~~~~~~~~~~
> cjson.c:302:18: warning: implicit declaration of function
> ‘PyInt_FromString’; did you mean ‘PyLong_FromString’?
> [-Wimplicit-function-declaration]
> 302 | object = PyInt_FromString(PyString_AS_STRING(str), NULL,
> 10);
> | ^~~~~~~~~~~~~~~~
> | PyLong_FromString
> cjson.c:302:35: warning: implicit declaration of function
> ‘PyString_AS_STRING’; did you mean ‘PyBytes_AS_STRING’?
> [-Wimplicit-function-declaration]
> 302 | object = PyInt_FromString(PyString_AS_STRING(str), NULL,
> 10);
> | ^~~~~~~~~~~~~~~~~~
> | PyBytes_AS_STRING
> cjson.c:302:16: warning: assignment to ‘PyObject *’ {aka ‘struct _object
> *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
> 302 | object = PyInt_FromString(PyString_AS_STRING(str), NULL,
> 10);
> | ^
> cjson.c: In function ‘encode_string’:
> cjson.c:593:14: error: unknown type name ‘PyStringObject’
> 593 | register PyStringObject* op = (PyStringObject*) string;
> | ^~~~~~~~~~~~~~
> cjson.c:593:36: error: ‘PyStringObject’ undeclared (first use in this
> function); did you mean ‘PySliceObject’?
> 593 | register PyStringObject* op = (PyStringObject*) string;
> | ^~~~~~~~~~~~~~
> | PySliceObject
> cjson.c:593:36: note: each undeclared identifier is reported only once
> for each function it appears in
> cjson.c:593:51: error: expected expression before ‘)’ token
> 593 | register PyStringObject* op = (PyStringObject*) string;
> | ^
> cjson.c:594:32: error: request for member ‘ob_size’ in something not a
> structure or union
> 594 | size_t newsize = 2 + 6 * op->ob_size;
> | ^~
> cjson.c:597:11: error: request for member ‘ob_size’ in something not a
> structure or union
> 597 | if (op->ob_size > (PY_SSIZE_T_MAX-2)/6) {
> | ^~
> cjson.c:602:7: warning: assignment to ‘PyObject *’ {aka ‘struct _object
> *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
> 602 | v = PyString_FromStringAndSize((char *)NULL, newsize);
> | ^
> cjson.c:614:11: warning: assignment to ‘char *’ from ‘int’ makes pointer
> from integer without a cast [-Wint-conversion]
> 614 | p = PyString_AS_STRING(v);
> | ^
> cjson.c:616:27: error: request for member ‘ob_size’ in something not a
> structure or union
> 616 | for (i = 0; i < op->ob_size; i++) {
> | ^~
> cjson.c:620:19: error: request for member ‘ob_sval’ in something not a
> structure or union
> 620 | c = op->ob_sval[i];
> | ^~
> cjson.c:646:9: warning: implicit declaration of function
> ‘_PyString_Resize’ [-Wimplicit-function-declaration]
> 646 | _PyString_Resize(&v, (int) (p - PyString_AS_STRING(v)));
> | ^~~~~~~~~~~~~~~~
> cjson.c:646:30: warning: cast from pointer to integer of different size
> [-Wpointer-to-int-cast]
> 646 | _PyString_Resize(&v, (int) (p - PyString_AS_STRING(v)));
> | ^
> cjson.c: In function ‘encode_unicode’:
> cjson.c:697:10: warning: assignment to ‘PyObject *’ {aka ‘struct _object
> *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
> 697 | repr = PyString_FromStringAndSize(NULL, 2 + expandsize*size
> + 1);
> | ^
> cjson.c:701:7: warning: assignment to ‘char *’ from ‘int’ makes pointer
> from integer without a cast [-Wint-conversion]
> 701 | p = PyString_AS_STRING(repr);
> | ^
> cjson.c:709:57: error: subscripted value is neither array nor pointer
> nor vector
> 709 | if ((ch == (Py_UNICODE) PyString_AS_STRING(repr)[0] ||
> ch == '\\')) {
> | ^
> cjson.c:785:36: error: subscripted value is neither array nor pointer
> nor vector
> 785 | *p++ = PyString_AS_STRING(repr)[0];
> | ^
> cjson.c: In function ‘encode_tuple’:
> cjson.c:809:10: error: ‘PyTupleObject’ {aka ‘struct <anonymous>’} has no
> member named ‘ob_size’
> 809 | n = v->ob_size;
> | ^~
> cjson.c:811:16: warning: implicit declaration of function
> ‘PyString_FromString’; did you mean ‘PyLong_FromString’?
> [-Wimplicit-function-declaration]
> 811 | return PyString_FromString("[]");
> | ^~~~~~~~~~~~~~~~~~~
> | PyLong_FromString
> cjson.c:811:16: warning: returning ‘int’ from a function with return
> type ‘PyObject *’ {aka ‘struct _object *’} makes pointer from integer
> without a cast [-Wint-conversion]
> 811 | return PyString_FromString("[]");
> | ^~~~~~~~~~~~~~~~~~~~~~~~~
> cjson.c:827:7: warning: assignment to ‘PyObject *’ {aka ‘struct _object
> *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
> 827 | s = PyString_FromString("[");
> | ^
> cjson.c:831:5: warning: implicit declaration of function
> ‘PyString_ConcatAndDel’; did you mean ‘PyBytes_ConcatAndDel’?
> [-Wimplicit-function-declaration]
> 831 | PyString_ConcatAndDel(&s, temp);
> | ^~~~~~~~~~~~~~~~~~~~~
> | PyBytes_ConcatAndDel
> cjson.c:836:7: warning: assignment to ‘PyObject *’ {aka ‘struct _object
> *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
> 836 | s = PyString_FromString("]");
> | ^
> cjson.c:846:7: warning: assignment to ‘PyObject *’ {aka ‘struct _object
> *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
> 846 | s = PyString_FromString(", ");
> | ^
> cjson.c:849:14: warning: implicit declaration of function
> ‘_PyString_Join’ [-Wimplicit-function-declaration]
> 849 | result = _PyString_Join(s, pieces);
> | ^~~~~~~~~~~~~~
> cjson.c:849:12: warning: assignment to ‘PyObject *’ {aka ‘struct _object
> *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
> 849 | result = _PyString_Join(s, pieces);
> | ^
> cjson.c: In function ‘encode_list’:
> cjson.c:883:10: error: ‘PyListObject’ {aka ‘struct <anonymous>’} has no
> member named ‘ob_size’
> 883 | if (v->ob_size == 0) {
> | ^~
> cjson.c:884:16: warning: assignment to ‘PyObject *’ {aka ‘struct _object
> *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
> 884 | result = PyString_FromString("[]");
> | ^
> cjson.c:894:22: error: ‘PyListObject’ {aka ‘struct <anonymous>’} has no
> member named ‘ob_size’
> 894 | for (i = 0; i < v->ob_size; ++i) {
> | ^~
> cjson.c:907:7: warning: assignment to ‘PyObject *’ {aka ‘struct _object
> *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
> 907 | s = PyString_FromString("[");
> | ^
> cjson.c:916:7: warning: assignment to ‘PyObject *’ {aka ‘struct _object
> *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
> 916 | s = PyString_FromString("]");
> | ^
> cjson.c:926:7: warning: assignment to ‘PyObject *’ {aka ‘struct _object
> *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
> 926 | s = PyString_FromString(", ");
> | ^
> cjson.c:929:12: warning: assignment to ‘PyObject *’ {aka ‘struct _object
> *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
> 929 | result = _PyString_Join(s, pieces);
> | ^
> cjson.c: In function ‘encode_dict’:
> cjson.c:968:16: warning: assignment to ‘PyObject *’ {aka ‘struct _object
> *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
> 968 | result = PyString_FromString("{}");
> | ^
> cjson.c:976:11: warning: assignment to ‘PyObject *’ {aka ‘struct _object
> *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
> 976 | colon = PyString_FromString(": ");
> | ^
> cjson.c:986:14: warning: implicit declaration of function
> ‘PyString_Check’; did you mean ‘PyMapping_Check’?
> [-Wimplicit-function-declaration]
> 986 | if (!PyString_Check(key) && !PyUnicode_Check(key)) {
> | ^~~~~~~~~~~~~~
> | PyMapping_Check
> cjson.c:995:9: warning: implicit declaration of function
> ‘PyString_Concat’; did you mean ‘PySequence_Concat’?
> [-Wimplicit-function-declaration]
> 995 | PyString_Concat(&s, colon);
> | ^~~~~~~~~~~~~~~
> | PySequence_Concat
> cjson.c:1008:7: warning: assignment to ‘PyObject *’ {aka ‘struct _object
> *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
> 1008 | s = PyString_FromString("{");
> | ^
> cjson.c:1017:7: warning: assignment to ‘PyObject *’ {aka ‘struct _object
> *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
> 1017 | s = PyString_FromString("}");
> | ^
> cjson.c:1027:7: warning: assignment to ‘PyObject *’ {aka ‘struct _object
> *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
> 1027 | s = PyString_FromString(", ");
> | ^
> cjson.c:1030:12: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 1030 | result = _PyString_Join(s, pieces);
> | ^
> cjson.c: In function ‘encode_object’:
> cjson.c:1045:16: warning: returning ‘int’ from a function with return
> type ‘PyObject *’ {aka ‘struct _object *’} makes pointer from integer
> without a cast [-Wint-conversion]
> 1045 | return PyString_FromString("true");
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> cjson.c:1047:16: warning: returning ‘int’ from a function with return
> type ‘PyObject *’ {aka ‘struct _object *’} makes pointer from integer
> without a cast [-Wint-conversion]
> 1047 | return PyString_FromString("false");
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> cjson.c:1049:16: warning: returning ‘int’ from a function with return
> type ‘PyObject *’ {aka ‘struct _object *’} makes pointer from integer
> without a cast [-Wint-conversion]
> 1049 | return PyString_FromString("null");
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> cjson.c:1057:20: warning: returning ‘int’ from a function with return
> type ‘PyObject *’ {aka ‘struct _object *’} makes pointer from integer
> without a cast [-Wint-conversion]
> 1057 | return PyString_FromString("NaN");
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~
> cjson.c:1060:24: warning: returning ‘int’ from a function with return
> type ‘PyObject *’ {aka ‘struct _object *’} makes pointer from integer
> without a cast [-Wint-conversion]
> 1060 | return PyString_FromString("Infinity");
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> cjson.c:1062:24: warning: returning ‘int’ from a function with return
> type ‘PyObject *’ {aka ‘struct _object *’} makes pointer from integer
> without a cast [-Wint-conversion]
> 1062 | return PyString_FromString("-Infinity");
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> cjson.c:1067:16: warning: implicit declaration of function
> ‘PyInt_Check’; did you mean ‘PySet_Check’? [-Wimplicit-function-declaration]
> 1067 | } else if (PyInt_Check(object) || PyLong_Check(object)) {
> | ^~~~~~~~~~~
> | PySet_Check
> cjson.c: In function ‘JSON_decode’:
> cjson.c:1130:9: warning: implicit declaration of function
> ‘PyString_AsStringAndSize’; did you mean ‘PyBytes_AsStringAndSize’?
> [-Wimplicit-function-declaration]
> 1130 | if (PyString_AsStringAndSize(str, &(jsondata.str), NULL) ==
> -1) {
> | ^~~~~~~~~~~~~~~~~~~~~~~~
> | PyBytes_AsStringAndSize
> cjson.c:1136:35: warning: implicit declaration of function
> ‘PyString_GET_SIZE’; did you mean ‘PyList_GET_SIZE’?
> [-Wimplicit-function-declaration]
> 1136 | jsondata.end = jsondata.str + PyString_GET_SIZE(str);
> | ^~~~~~~~~~~~~~~~~
> | PyList_GET_SIZE
> cjson.c: In function ‘initcjson’:
> cjson.c:1187:9: warning: implicit declaration of function
> ‘Py_InitModule3’ [-Wimplicit-function-declaration]
> 1187 | m = Py_InitModule3("cjson", cjson_methods, module_doc);
> | ^~~~~~~~~~~~~~
> cjson.c:1187:7: warning: assignment to ‘PyObject *’ {aka ‘struct _object
> *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
> 1187 | m = Py_InitModule3("cjson", cjson_methods, module_doc);
> | ^
> cjson.c:1190:9: warning: ‘return’ with no value, in function returning
> non-void [-Wreturn-type]
> 1190 | return;
> | ^~~~~~
> cjson.c:1183:1: note: declared here
> 1183 | initcjson(void)
> | ^~~~~~~~~
> cjson.c:1194:9: warning: ‘return’ with no value, in function returning
> non-void [-Wreturn-type]
> 1194 | return;
> | ^~~~~~
> cjson.c:1183:1: note: declared here
> 1183 | initcjson(void)
> | ^~~~~~~~~
> cjson.c:1200:9: warning: ‘return’ with no value, in function returning
> non-void [-Wreturn-type]
> 1200 | return;
> | ^~~~~~
> cjson.c:1183:1: note: declared here
> 1183 | initcjson(void)
> | ^~~~~~~~~
> cjson.c:1206:9: warning: ‘return’ with no value, in function returning
> non-void [-Wreturn-type]
> 1206 | return;
> | ^~~~~~
> cjson.c:1183:1: note: declared here
> 1183 | initcjson(void)
> | ^~~~~~~~~
> error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
> ----------------------------------------
> ERROR: Failed building wheel for python-cjson
> Running setup.py clean for python-cjson
> Failed to build python-cjson
> Installing collected packages: python-cjson
> Running setup.py install for python-cjson ... error
> ERROR: Command errored out with exit status 1:
> command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize;
> sys.argv[0] = '"'"'/tmp/pip-install-zu4cgg1n/python-cjson/setup.py'"'"';
> __file__='"'"'/tmp/pip-install-zu4cgg1n/python-cjson/setup.py'"'"';f=getattr(tokenize,
>
> '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"',
> '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))'
> install --record /tmp/pip-record-b8b539va/install-record.txt
> --single-version-externally-managed --compile --install-headers
> /usr/local/include/python3.8/python-cjson
> cwd: /tmp/pip-install-zu4cgg1n/python-cjson/
> Complete output (243 lines):
> running install
> running build
> running build_ext
> building 'cjson' extension
> creating build
> creating build/temp.linux-x86_64-3.8
> x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare
> -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat
> -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat
> -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC
> -DMODULE_VERSION=1.2.2 -I/usr/include/python3.8 -c cjson.c -o
> build/temp.linux-x86_64-3.8/cjson.o
> cjson.c: In function ‘decode_string’:
> cjson.c:167:18: warning: implicit declaration of function
> ‘PyString_DecodeEscape’; did you mean ‘PyBytes_DecodeEscape’?
> [-Wimplicit-function-declaration]
> 167 | object = PyString_DecodeEscape(jsondata->ptr+1, len,
> NULL, 0, NULL);
> | ^~~~~~~~~~~~~~~~~~~~~
> | PyBytes_DecodeEscape
> cjson.c:167:16: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 167 | object = PyString_DecodeEscape(jsondata->ptr+1, len,
> NULL, 0, NULL);
> | ^
> cjson.c:169:18: warning: implicit declaration of function
> ‘PyString_FromStringAndSize’; did you mean ‘PyBytes_FromStringAndSize’?
> [-Wimplicit-function-declaration]
> 169 | object = PyString_FromStringAndSize(jsondata->ptr+1,
> len);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~
> | PyBytes_FromStringAndSize
> cjson.c:169:16: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 169 | object = PyString_FromStringAndSize(jsondata->ptr+1,
> len);
> | ^
> cjson.c:185:39: warning: implicit declaration of function
> ‘PyString_AsString’ [-Wimplicit-function-declaration]
> 185 | reason ?
> PyString_AsString(reason) : "bad format");
> | ^~~~~~~~~~~~~~~~~
> cjson.c:185:65: warning: pointer/integer type mismatch in conditional
> expression
> 185 | reason ?
> PyString_AsString(reason) : "bad format");
> |
> ^
> cjson.c: In function ‘decode_number’:
> cjson.c:295:9: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 295 | str = PyString_FromStringAndSize(jsondata->ptr, ptr -
> jsondata->ptr);
> | ^
> cjson.c:300:18: error: too many arguments to function
> ‘PyFloat_FromString’
> 300 | object = PyFloat_FromString(str, NULL);
> | ^~~~~~~~~~~~~~~~~~
> In file included from /usr/include/python3.8/Python.h:101,
> from cjson.c:5:
> /usr/include/python3.8/floatobject.h:42:24: note: declared here
> 42 | PyAPI_FUNC(PyObject *) PyFloat_FromString(PyObject*);
> | ^~~~~~~~~~~~~~~~~~
> cjson.c:302:18: warning: implicit declaration of function
> ‘PyInt_FromString’; did you mean ‘PyLong_FromString’?
> [-Wimplicit-function-declaration]
> 302 | object = PyInt_FromString(PyString_AS_STRING(str),
> NULL, 10);
> | ^~~~~~~~~~~~~~~~
> | PyLong_FromString
> cjson.c:302:35: warning: implicit declaration of function
> ‘PyString_AS_STRING’; did you mean ‘PyBytes_AS_STRING’?
> [-Wimplicit-function-declaration]
> 302 | object = PyInt_FromString(PyString_AS_STRING(str),
> NULL, 10);
> | ^~~~~~~~~~~~~~~~~~
> | PyBytes_AS_STRING
> cjson.c:302:16: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 302 | object = PyInt_FromString(PyString_AS_STRING(str),
> NULL, 10);
> | ^
> cjson.c: In function ‘encode_string’:
> cjson.c:593:14: error: unknown type name ‘PyStringObject’
> 593 | register PyStringObject* op = (PyStringObject*) string;
> | ^~~~~~~~~~~~~~
> cjson.c:593:36: error: ‘PyStringObject’ undeclared (first use in this
> function); did you mean ‘PySliceObject’?
> 593 | register PyStringObject* op = (PyStringObject*) string;
> | ^~~~~~~~~~~~~~
> | PySliceObject
> cjson.c:593:36: note: each undeclared identifier is reported only once
> for each function it appears in
> cjson.c:593:51: error: expected expression before ‘)’ token
> 593 | register PyStringObject* op = (PyStringObject*) string;
> | ^
> cjson.c:594:32: error: request for member ‘ob_size’ in something not a
> structure or union
> 594 | size_t newsize = 2 + 6 * op->ob_size;
> | ^~
> cjson.c:597:11: error: request for member ‘ob_size’ in something not a
> structure or union
> 597 | if (op->ob_size > (PY_SSIZE_T_MAX-2)/6) {
> | ^~
> cjson.c:602:7: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 602 | v = PyString_FromStringAndSize((char *)NULL, newsize);
> | ^
> cjson.c:614:11: warning: assignment to ‘char *’ from ‘int’ makes
> pointer from integer without a cast [-Wint-conversion]
> 614 | p = PyString_AS_STRING(v);
> | ^
> cjson.c:616:27: error: request for member ‘ob_size’ in something not a
> structure or union
> 616 | for (i = 0; i < op->ob_size; i++) {
> | ^~
> cjson.c:620:19: error: request for member ‘ob_sval’ in something not a
> structure or union
> 620 | c = op->ob_sval[i];
> | ^~
> cjson.c:646:9: warning: implicit declaration of function
> ‘_PyString_Resize’ [-Wimplicit-function-declaration]
> 646 | _PyString_Resize(&v, (int) (p -
> PyString_AS_STRING(v)));
> | ^~~~~~~~~~~~~~~~
> cjson.c:646:30: warning: cast from pointer to integer of different
> size [-Wpointer-to-int-cast]
> 646 | _PyString_Resize(&v, (int) (p -
> PyString_AS_STRING(v)));
> | ^
> cjson.c: In function ‘encode_unicode’:
> cjson.c:697:10: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 697 | repr = PyString_FromStringAndSize(NULL, 2 +
> expandsize*size + 1);
> | ^
> cjson.c:701:7: warning: assignment to ‘char *’ from ‘int’ makes
> pointer from integer without a cast [-Wint-conversion]
> 701 | p = PyString_AS_STRING(repr);
> | ^
> cjson.c:709:57: error: subscripted value is neither array nor pointer
> nor vector
> 709 | if ((ch == (Py_UNICODE) PyString_AS_STRING(repr)[0] ||
> ch == '\\')) {
> | ^
> cjson.c:785:36: error: subscripted value is neither array nor pointer
> nor vector
> 785 | *p++ = PyString_AS_STRING(repr)[0];
> | ^
> cjson.c: In function ‘encode_tuple’:
> cjson.c:809:10: error: ‘PyTupleObject’ {aka ‘struct <anonymous>’} has
> no member named ‘ob_size’
> 809 | n = v->ob_size;
> | ^~
> cjson.c:811:16: warning: implicit declaration of function
> ‘PyString_FromString’; did you mean ‘PyLong_FromString’?
> [-Wimplicit-function-declaration]
> 811 | return PyString_FromString("[]");
> | ^~~~~~~~~~~~~~~~~~~
> | PyLong_FromString
> cjson.c:811:16: warning: returning ‘int’ from a function with return
> type ‘PyObject *’ {aka ‘struct _object *’} makes pointer from integer
> without a cast [-Wint-conversion]
> 811 | return PyString_FromString("[]");
> | ^~~~~~~~~~~~~~~~~~~~~~~~~
> cjson.c:827:7: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 827 | s = PyString_FromString("[");
> | ^
> cjson.c:831:5: warning: implicit declaration of function
> ‘PyString_ConcatAndDel’; did you mean ‘PyBytes_ConcatAndDel’?
> [-Wimplicit-function-declaration]
> 831 | PyString_ConcatAndDel(&s, temp);
> | ^~~~~~~~~~~~~~~~~~~~~
> | PyBytes_ConcatAndDel
> cjson.c:836:7: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 836 | s = PyString_FromString("]");
> | ^
> cjson.c:846:7: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 846 | s = PyString_FromString(", ");
> | ^
> cjson.c:849:14: warning: implicit declaration of function
> ‘_PyString_Join’ [-Wimplicit-function-declaration]
> 849 | result = _PyString_Join(s, pieces);
> | ^~~~~~~~~~~~~~
> cjson.c:849:12: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 849 | result = _PyString_Join(s, pieces);
> | ^
> cjson.c: In function ‘encode_list’:
> cjson.c:883:10: error: ‘PyListObject’ {aka ‘struct <anonymous>’} has
> no member named ‘ob_size’
> 883 | if (v->ob_size == 0) {
> | ^~
> cjson.c:884:16: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 884 | result = PyString_FromString("[]");
> | ^
> cjson.c:894:22: error: ‘PyListObject’ {aka ‘struct <anonymous>’} has
> no member named ‘ob_size’
> 894 | for (i = 0; i < v->ob_size; ++i) {
> | ^~
> cjson.c:907:7: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 907 | s = PyString_FromString("[");
> | ^
> cjson.c:916:7: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 916 | s = PyString_FromString("]");
> | ^
> cjson.c:926:7: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 926 | s = PyString_FromString(", ");
> | ^
> cjson.c:929:12: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 929 | result = _PyString_Join(s, pieces);
> | ^
> cjson.c: In function ‘encode_dict’:
> cjson.c:968:16: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 968 | result = PyString_FromString("{}");
> | ^
> cjson.c:976:11: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 976 | colon = PyString_FromString(": ");
> | ^
> cjson.c:986:14: warning: implicit declaration of function
> ‘PyString_Check’; did you mean ‘PyMapping_Check’?
> [-Wimplicit-function-declaration]
> 986 | if (!PyString_Check(key) && !PyUnicode_Check(key)) {
> | ^~~~~~~~~~~~~~
> | PyMapping_Check
> cjson.c:995:9: warning: implicit declaration of function
> ‘PyString_Concat’; did you mean ‘PySequence_Concat’?
> [-Wimplicit-function-declaration]
> 995 | PyString_Concat(&s, colon);
> | ^~~~~~~~~~~~~~~
> | PySequence_Concat
> cjson.c:1008:7: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 1008 | s = PyString_FromString("{");
> | ^
> cjson.c:1017:7: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 1017 | s = PyString_FromString("}");
> | ^
> cjson.c:1027:7: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 1027 | s = PyString_FromString(", ");
> | ^
> cjson.c:1030:12: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 1030 | result = _PyString_Join(s, pieces);
> | ^
> cjson.c: In function ‘encode_object’:
> cjson.c:1045:16: warning: returning ‘int’ from a function with return
> type ‘PyObject *’ {aka ‘struct _object *’} makes pointer from integer
> without a cast [-Wint-conversion]
> 1045 | return PyString_FromString("true");
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> cjson.c:1047:16: warning: returning ‘int’ from a function with return
> type ‘PyObject *’ {aka ‘struct _object *’} makes pointer from integer
> without a cast [-Wint-conversion]
> 1047 | return PyString_FromString("false");
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> cjson.c:1049:16: warning: returning ‘int’ from a function with return
> type ‘PyObject *’ {aka ‘struct _object *’} makes pointer from integer
> without a cast [-Wint-conversion]
> 1049 | return PyString_FromString("null");
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> cjson.c:1057:20: warning: returning ‘int’ from a function with return
> type ‘PyObject *’ {aka ‘struct _object *’} makes pointer from integer
> without a cast [-Wint-conversion]
> 1057 | return PyString_FromString("NaN");
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~
> cjson.c:1060:24: warning: returning ‘int’ from a function with return
> type ‘PyObject *’ {aka ‘struct _object *’} makes pointer from integer
> without a cast [-Wint-conversion]
> 1060 | return PyString_FromString("Infinity");
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> cjson.c:1062:24: warning: returning ‘int’ from a function with return
> type ‘PyObject *’ {aka ‘struct _object *’} makes pointer from integer
> without a cast [-Wint-conversion]
> 1062 | return PyString_FromString("-Infinity");
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> cjson.c:1067:16: warning: implicit declaration of function
> ‘PyInt_Check’; did you mean ‘PySet_Check’? [-Wimplicit-function-declaration]
> 1067 | } else if (PyInt_Check(object) || PyLong_Check(object)) {
> | ^~~~~~~~~~~
> | PySet_Check
> cjson.c: In function ‘JSON_decode’:
> cjson.c:1130:9: warning: implicit declaration of function
> ‘PyString_AsStringAndSize’; did you mean ‘PyBytes_AsStringAndSize’?
> [-Wimplicit-function-declaration]
> 1130 | if (PyString_AsStringAndSize(str, &(jsondata.str), NULL)
> == -1) {
> | ^~~~~~~~~~~~~~~~~~~~~~~~
> | PyBytes_AsStringAndSize
> cjson.c:1136:35: warning: implicit declaration of function
> ‘PyString_GET_SIZE’; did you mean ‘PyList_GET_SIZE’?
> [-Wimplicit-function-declaration]
> 1136 | jsondata.end = jsondata.str + PyString_GET_SIZE(str);
> | ^~~~~~~~~~~~~~~~~
> | PyList_GET_SIZE
> cjson.c: In function ‘initcjson’:
> cjson.c:1187:9: warning: implicit declaration of function
> ‘Py_InitModule3’ [-Wimplicit-function-declaration]
> 1187 | m = Py_InitModule3("cjson", cjson_methods, module_doc);
> | ^~~~~~~~~~~~~~
> cjson.c:1187:7: warning: assignment to ‘PyObject *’ {aka ‘struct
> _object *’} from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 1187 | m = Py_InitModule3("cjson", cjson_methods, module_doc);
> | ^
> cjson.c:1190:9: warning: ‘return’ with no value, in function returning
> non-void [-Wreturn-type]
> 1190 | return;
> | ^~~~~~
> cjson.c:1183:1: note: declared here
> 1183 | initcjson(void)
> | ^~~~~~~~~
> cjson.c:1194:9: warning: ‘return’ with no value, in function returning
> non-void [-Wreturn-type]
> 1194 | return;
> | ^~~~~~
> cjson.c:1183:1: note: declared here
> 1183 | initcjson(void)
> | ^~~~~~~~~
> cjson.c:1200:9: warning: ‘return’ with no value, in function returning
> non-void [-Wreturn-type]
> 1200 | return;
> | ^~~~~~
> cjson.c:1183:1: note: declared here
> 1183 | initcjson(void)
> | ^~~~~~~~~
> cjson.c:1206:9: warning: ‘return’ with no value, in function returning
> non-void [-Wreturn-type]
> 1206 | return;
> | ^~~~~~
> cjson.c:1183:1: note: declared here
> 1183 | initcjson(void)
> | ^~~~~~~~~
> error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
> ----------------------------------------
> ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c
> 'import sys, setuptools, tokenize; sys.argv[0] =
> '"'"'/tmp/pip-install-zu4cgg1n/python-cjson/setup.py'"'"';
> __file__='"'"'/tmp/pip-install-zu4cgg1n/python-cjson/setup.py'"'"';f=getattr(tokenize,
>
> '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"',
> '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))'
> install --record /tmp/pip-record-b8b539va/install-record.txt
> --single-version-externally-managed --compile --install-headers
> /usr/local/include/python3.8/python-cjson Check the logs for full command
> output.
>
--
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].
To view this discussion on the web visit
https://groups.google.com/d/msgid/weewx-user/9511f18b-737c-4fff-9b37-f90eb70e2514%40googlegroups.com.