Python版本:Python 3.12.3 macOS 索诺玛 14.4.1
我尝试安装 python-docx 并遇到以下有关 lxml 的错误消息。
Collecting python-docx
Using cached python_docx-1.1.1-py3-none-any.whl.metadata (2.0 kB)
Collecting lxml<=4.9.2,>=3.1.0 (from python-docx)
Using cached lxml-4.9.2.tar.gz (3.7 MB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Installing backend dependencies ... done
Preparing metadata (pyproject.toml) ... done
Collecting typing-extensions>=4.9.0 (from python-docx)
Using cached typing_extensions-4.11.0-py3-none-any.whl.metadata (3.0 kB)
Using cached python_docx-1.1.1-py3-none-any.whl (242 kB)
Using cached typing_extensions-4.11.0-py3-none-any.whl (34 kB)
Building wheels for collected packages: lxml
Building wheel for lxml (pyproject.toml) ... error
error: subprocess-exited-with-error
× Building wheel for lxml (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [176 lines of output]
<string>:117: SyntaxWarning: invalid escape sequence '\.'
<string>:67: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
Building lxml version 4.9.2.
Building without Cython.
Building against libxml2 2.9.4 and libxslt 1.1.29
Building against libxml2/libxslt in the following directory: /Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk/usr/lib
running bdist_wheel
running build
running build_py
creating build
creating build/lib.macosx-10.9-universal2-cpython-312
creating build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/_elementpath.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/sax.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/pyclasslookup.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/__init__.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/builder.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/doctestcompare.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/usedoctest.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/cssselect.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/ElementInclude.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml
creating build/lib.macosx-10.9-universal2-cpython-312/lxml/includes
copying src/lxml/includes/__init__.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml/includes
creating build/lib.macosx-10.9-universal2-cpython-312/lxml/html
copying src/lxml/html/soupparser.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml/html
copying src/lxml/html/defs.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml/html
copying src/lxml/html/_setmixin.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml/html
copying src/lxml/html/clean.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml/html
copying src/lxml/html/_diffcommand.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml/html
copying src/lxml/html/html5parser.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml/html
copying src/lxml/html/__init__.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml/html
copying src/lxml/html/formfill.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml/html
copying src/lxml/html/builder.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml/html
copying src/lxml/html/ElementSoup.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml/html
copying src/lxml/html/_html5builder.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml/html
copying src/lxml/html/usedoctest.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml/html
copying src/lxml/html/diff.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml/html
creating build/lib.macosx-10.9-universal2-cpython-312/lxml/isoschematron
copying src/lxml/isoschematron/__init__.py -> build/lib.macosx-10.9-universal2-cpython-312/lxml/isoschematron
copying src/lxml/etree.h -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/etree_api.h -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/lxml.etree.h -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/lxml.etree_api.h -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/objectify.pyx -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/etree.pyx -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/public-api.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/xmlid.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/cleanup.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/xslt.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/xpath.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/debug.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/serializer.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/classlookup.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/saxparser.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/objectpath.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/relaxng.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/xinclude.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/iterparse.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/parser.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/dtd.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/apihelpers.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/xmlerror.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/readonlytree.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/extensions.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/xmlschema.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/schematron.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/docloader.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/nsclasses.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/parsertarget.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/xsltext.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/proxy.pxi -> build/lib.macosx-10.9-universal2-cpython-312/lxml
copying src/lxml/includes/xmlerror.pxd -> build/lib.macosx-10.9-universal2-cpython-312/lxml/includes
copying src/lxml/includes/c14n.pxd -> build/lib.macosx-10.9-universal2-cpython-312/lxml/includes
copying src/lxml/includes/xmlschema.pxd -> build/lib.macosx-10.9-universal2-cpython-312/lxml/includes
copying src/lxml/includes/__init__.pxd -> build/lib.macosx-10.9-universal2-cpython-312/lxml/includes
copying src/lxml/includes/schematron.pxd -> build/lib.macosx-10.9-universal2-cpython-312/lxml/includes
copying src/lxml/includes/tree.pxd -> build/lib.macosx-10.9-universal2-cpython-312/lxml/includes
copying src/lxml/includes/uri.pxd -> build/lib.macosx-10.9-universal2-cpython-312/lxml/includes
copying src/lxml/includes/etreepublic.pxd -> build/lib.macosx-10.9-universal2-cpython-312/lxml/includes
copying src/lxml/includes/xpath.pxd -> build/lib.macosx-10.9-universal2-cpython-312/lxml/includes
copying src/lxml/includes/htmlparser.pxd -> build/lib.macosx-10.9-universal2-cpython-312/lxml/includes
copying src/lxml/includes/xslt.pxd -> build/lib.macosx-10.9-universal2-cpython-312/lxml/includes
copying src/lxml/includes/config.pxd -> build/lib.macosx-10.9-universal2-cpython-312/lxml/includes
copying src/lxml/includes/xmlparser.pxd -> build/lib.macosx-10.9-universal2-cpython-312/lxml/includes
copying src/lxml/includes/xinclude.pxd -> build/lib.macosx-10.9-universal2-cpython-312/lxml/includes
copying src/lxml/includes/dtdvalid.pxd -> build/lib.macosx-10.9-universal2-cpython-312/lxml/includes
copying src/lxml/includes/relaxng.pxd -> build/lib.macosx-10.9-universal2-cpython-312/lxml/includes
copying src/lxml/includes/lxml-version.h -> build/lib.macosx-10.9-universal2-cpython-312/lxml/includes
copying src/lxml/includes/etree_defs.h -> build/lib.macosx-10.9-universal2-cpython-312/lxml/includes
creating build/lib.macosx-10.9-universal2-cpython-312/lxml/isoschematron/resources
creating build/lib.macosx-10.9-universal2-cpython-312/lxml/isoschematron/resources/rng
copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.macosx-10.9-universal2-cpython-312/lxml/isoschematron/resources/rng
creating build/lib.macosx-10.9-universal2-cpython-312/lxml/isoschematron/resources/xsl
copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.macosx-10.9-universal2-cpython-312/lxml/isoschematron/resources/xsl
copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.macosx-10.9-universal2-cpython-312/lxml/isoschematron/resources/xsl
creating build/lib.macosx-10.9-universal2-cpython-312/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl -> build/lib.macosx-10.9-universal2-cpython-312/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl -> build/lib.macosx-10.9-universal2-cpython-312/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl -> build/lib.macosx-10.9-universal2-cpython-312/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl -> build/lib.macosx-10.9-universal2-cpython-312/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl -> build/lib.macosx-10.9-universal2-cpython-312/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.macosx-10.9-universal2-cpython-312/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
running build_ext
building 'lxml.etree' extension
creating build/temp.macosx-10.9-universal2-cpython-312
creating build/temp.macosx-10.9-universal2-cpython-312/src
creating build/temp.macosx-10.9-universal2-cpython-312/src/lxml
clang -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -g -DCYTHON_CLINE_IN_TRACEBACK=0 -I/Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk/usr/include -Isrc -Isrc/lxml/includes -I/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12 -c src/lxml/etree.c -o build/temp.macosx-10.9-universal2-cpython-312/src/lxml/etree.o -w -flat_namespace
src/lxml/etree.c:262394:36: error: no member named 'curexc_traceback' in 'struct _ts'
PyObject* tmp_tb = tstate->curexc_traceback;
~~~~~~ ^
src/lxml/etree.c:262397:21: error: no member named 'curexc_traceback' in 'struct _ts'
tstate->curexc_traceback = tb;
~~~~~~ ^
src/lxml/etree.c:263340:53: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)op1)->ob_digit;
~~~~~~~~~~~~~~~~~~~~ ^
src/lxml/etree.c:263457:53: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)op1)->ob_digit;
~~~~~~~~~~~~~~~~~~~~ ^
src/lxml/etree.c:265182:53: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)op1)->ob_digit;
~~~~~~~~~~~~~~~~~~~~ ^
src/lxml/etree.c:267536:55: error: no member named 'gi_code' in 'PyGenObject'
if (PyGen_CheckExact(obj) && ((PyGenObject*)obj)->gi_code && ((PyCodeObject *)((PyGenObject*)obj)->gi_code)->co_flags & CO_ITERABLE_COROUTINE) {
~~~~~~~~~~~~~~~~~~~ ^
src/lxml/etree.c:267536:104: error: no member named 'gi_code' in 'PyGenObject'
if (PyGen_CheckExact(obj) && ((PyGenObject*)obj)->gi_code && ((PyCodeObject *)((PyGenObject*)obj)->gi_code)->co_flags & CO_ITERABLE_COROUTINE) {
~~~~~~~~~~~~~~~~~~~ ^
src/lxml/etree.c:268588:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
src/lxml/etree.c:268643:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
src/lxml/etree.c:268897:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
src/lxml/etree.c:268952:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
src/lxml/etree.c:269093:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
src/lxml/etree.c:269148:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
src/lxml/etree.c:269289:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
src/lxml/etree.c:269344:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
src/lxml/etree.c:269523:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
src/lxml/etree.c:269578:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
src/lxml/etree.c:269757:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
src/lxml/etree.c:269812:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
Compile failed: command '/usr/bin/clang' failed with exit code 1
creating var
creating var/folders
creating var/folders/rg
creating var/folders/rg/44f312ss6jddp8pnjhvd8qqw0000gn
creating var/folders/rg/44f312ss6jddp8pnjhvd8qqw0000gn/T
cc -I/Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk/usr/include -I/usr/include/libxml2 -c /var/folders/rg/44f312ss6jddp8pnjhvd8qqw0000gn/T/xmlXPathInit8gw85dwa.c -o var/folders/rg/44f312ss6jddp8pnjhvd8qqw0000gn/T/xmlXPathInit8gw85dwa.o
cc var/folders/rg/44f312ss6jddp8pnjhvd8qqw0000gn/T/xmlXPathInit8gw85dwa.o -L/Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk/usr/lib -lxml2 -o a.out
error: command '/usr/bin/clang' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for lxml
Failed to build lxml
ERROR: Could not build wheels for lxml, which is required to install pyproject.toml-based projects
我将 macOS 系统更新至最新版本。确保 Xcode 已安装。尝试卸载并重新安装 lxml。但同样的错误仍然存在。有人遇到过同样的情况吗
我也遇到了同样的问题。发现只是因为新的python-docx不支持新的lxml<5.2.0>。可能只是指lxml<=4.9.2,>=3.1.0。 我尝试安装旧版本的 python-docx(python_docx_1-0.0.2-py3-none-any.whl),然后完成。