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/a9562256-3464-4225-a6da-5f375275e4bb%40googlegroups.com.