hynek / doc2dash

Create docsets for Dash.app-compatible API browsers.

Home Page:https://doc2dash.hynek.me/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

With Python3.7, failed to install from PyPI.

ppwwyyxx opened this issue · comments

With Python 3.7, pip install doc2dash gave errors like:

gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fstack-protector-strong -fno-plt -flto=4 -fuse-linker-plugin -ffat-lto-obje
cts -flto-partition=none -g -march=x86-64 -mtune=generic -O3 -pipe -fstack-protector-strong -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fstack-protector-strong -fno-plt -fPIC -I/usr/include/l
ibxml2 -Isrc/lxml/includes -I/usr/include/python3.7m -c src/lxml/lxml.etree.c -o build/temp.linux-x86_64-3.7/src/lxml/lxml.etree.o -w                                                              
    src/lxml/lxml.etree.c: In function ‘__Pyx_PyCFunction_FastCall’:                                                                                                                               
    src/lxml/lxml.etree.c:233279:13: error: too many arguments to function ‘(PyObject * (*)(PyObject *, PyObject * const*, Py_ssize_t))meth’                                                       
         return (*((__Pyx_PyCFunctionFast)meth)) (self, args, nargs, NULL);                                                                                                                         
                ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                   
    src/lxml/lxml.etree.c: In function ‘__Pyx_PyDict_Items’:                                                                                                                                       
    src/lxml/lxml.etree.c:4532:83: error: too many arguments to function ‘(PyObject * (*)(PyObject *, PyObject * const*, Py_ssize_t))__pyx_umethod_PyDict_Type_items.func’                         
                   (PY_VERSION_HEX >= 0x030600B1 && (cfunc)->flag == METH_FASTCALL ?  (*(__Pyx_PyCFunctionFast)(cfunc)->func)(self, &PyTuple_GET_ITEM(__pyx_empty_tuple, 0), 0, NULL) :\
                                                                                      ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                      
    src/lxml/lxml.etree.c:233529:16: note: in expansion of macro ‘__Pyx_CallUnboundCMethod0’                                                                                                       
             return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyDict_Type_items, d);                                                                                                                
                    ^~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                      
    src/lxml/lxml.etree.c: In function ‘__Pyx__ExceptionSave’:                                                                                                                                     
    src/lxml/lxml.etree.c:233753:21: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?                                                          
         *type = tstate->exc_type;                                                                                                                                                                  
                         ^~~~~~~~                                                                                                                                                                  
                         curexc_type                                                                                                                                                               
    src/lxml/lxml.etree.c:233754:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?                                                       
         *value = tstate->exc_value;                                                                                                                                                               
                          ^~~~~~~~~                                                                                                                                                                
                          curexc_value                                                                                                                                                             
    src/lxml/lxml.etree.c:233755:19: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?                                               
         *tb = tstate->exc_traceback;                                                                                                                                                              
                       ^~~~~~~~~~~~~                                                                                                                                                               
                       curexc_traceback                                                                         

These are C API differences between Python 3.7 and previous versions.

However installing from github (pip install git+https://github.com/hynek/doc2dash.git) works fine. A new PyPI release may be needed.

It looks like he hasn't released the most recent version that unpins lxml from 3.8.0 - AFAIK, only lxml=4.x.x works on python 3.7.

However, I had no problem installing by dowloading the GitHub repo and running python setup.py install myself.

Yeah sorry for that. FWIW, the GitHub version dropped lxml for good and to be honest I haven't released it yet because I forgot what else there was to do. 🤔

2.3.0 is on PyPI. Sorry for the delays!