See e.g. https://travis-ci.org/kislyuk/signxml/jobs/37061786
Relevant build log excerpt:
Searching for lxml==3.3.6
Reading https://pypi.python.org/simple/lxml/
Best match: lxml 3.3.6
Downloading https://pypi.python.org/packages/source/l/lxml/lxml-3.3.6.tar.gz#md5=a804b36864c483fe7abdd7f493a0c379
Processing lxml-3.3.6.tar.gz
Writing /tmp/easy_install-2ufauw/lxml-3.3.6/setup.cfg
Running lxml-3.3.6/setup.py -q bdist_egg --dist-dir /tmp/easy_install-2ufauw/lxml-3.3.6/egg-dist-tmp-n7yrza
Building lxml version 3.3.6.
Building without Cython.
Using build configuration of libxslt 1.1.26
Building against libxml2/libxslt in the following directory: /usr/lib/x86_64-linux-gnu
/opt/python/pypy3-2.3.1/lib-python/3/distutils/dist.py:257: UserWarning: Unknown distribution option: 'bugtrack_url'
warnings.warn(msg)
src/lxml/lxml.etree.c: In function ‘__pyx_f_4lxml_5etree__utf8’:
src/lxml/lxml.etree.c:26499:81: error: ‘PyBytes_Type’ undeclared (first use in this function)
src/lxml/lxml.etree.c:26499:81: note: each undeclared identifier is reported only once for each function it appears in
src/lxml/lxml.etree.c: In function ‘__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_1__cinit__’:
src/lxml/lxml.etree.c:120082:7: error: ‘PyBytes_Type’ undeclared (first use in this function)
src/lxml/lxml.etree.c: In function ‘__pyx_f_4lxml_5etree__elementStringResultFactory’:
src/lxml/lxml.etree.c:141513:90: error: ‘PyBytes_Type’ undeclared (first use in this function)
src/lxml/lxml.etree.c: In function ‘PyInit_etree’:
src/lxml/lxml.etree.c:194381:3: error: ‘PyBytes_Type’ undeclared (first use in this function)
src/lxml/lxml.etree.c: In function ‘__Pyx_Raise’:
src/lxml/lxml.etree.c:196333:34: error: ‘PyThreadState’ has no member named ‘curexc_traceback’
src/lxml/lxml.etree.c:196336:19: error: ‘PyThreadState’ has no member named ‘curexc_traceback’
error: Setup script exited with error: command 'cc' failed with exit status 1
It seems that the C-API support in PyPy3 is even more broken than that in PyPy2. Please report the problems on their side first so that they can fix them. Then, I can take a look at what can be done on Cython/lxml side to improve the situation.