Reputation: 83
I just did a fresh install of windows to clean up my computer, moved everything over to my D drive and installed Python through Windows Store (somehow it defaulted to my C drive, so I left it there because Pycharm was getting confused about its location), now I'm trying to pip install the python-docx module for the first time and I'm stuck. I have a recent version of Microsoft C++ Visual Build Tools installed. Excuse me for any irrelevant information I provided, just wishing to be thorough. Here's what's returning in command:
.>pip install python-docx
Collecting python-docx
Using cached python-docx-0.8.11.tar.gz (5.6 MB)
Preparing metadata (setup.py) ... done
Collecting lxml>=2.3.2
Using cached lxml-4.6.3.tar.gz (3.2 MB)
Preparing metadata (setup.py) ... done
Using legacy 'setup.py install' for python-docx, since package 'wheel' is not installed.
Using legacy 'setup.py install' for lxml, since package 'wheel' is not installed.
Installing collected packages: lxml, python-docx
Running setup.py install for lxml ... error
ERROR: Command errored out with exit status 1:
command: 'C:\Users\cahez\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\python.exe' -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\cahez\\AppData\\Local\\Temp\\pip-install-8rz9vrlv\\lxml_69e9fa188fd042d6953641882e4b3a17\\setup.py'"'"'; __file__='"'"'C:\\Users\\cahez\\AppData\\Local\\Temp\\pip-install-8rz9vrlv\\lxml_69e9fa188fd042d6953641882e4b3a17\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\cahez\AppData\Local\Temp\pip-record-xpg_v_i_\install-record.txt' --single-version-externally-managed --user --prefix= --compile --install-headers 'C:\Users\cahez\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\Include\lxml'
cwd: C:\Users\cahez\AppData\Local\Temp\pip-install-8rz9vrlv\lxml_69e9fa188fd042d6953641882e4b3a17\
Complete output (76 lines):
Building lxml version 4.6.3.
Building without Cython.
Building against pre-built libxml2 andl libxslt libraries
running install
C:\Users\cahez\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\setuptools\command\install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
warnings.warn(
running build
running build_py
creating build
creating build\lib.win-amd64-3.10
creating build\lib.win-amd64-3.10\lxml
copying src\lxml\builder.py -> build\lib.win-amd64-3.10\lxml
copying src\lxml\cssselect.py -> build\lib.win-amd64-3.10\lxml
copying src\lxml\doctestcompare.py -> build\lib.win-amd64-3.10\lxml
copying src\lxml\ElementInclude.py -> build\lib.win-amd64-3.10\lxml
copying src\lxml\pyclasslookup.py -> build\lib.win-amd64-3.10\lxml
copying src\lxml\sax.py -> build\lib.win-amd64-3.10\lxml
copying src\lxml\usedoctest.py -> build\lib.win-amd64-3.10\lxml
copying src\lxml\_elementpath.py -> build\lib.win-amd64-3.10\lxml
copying src\lxml\__init__.py -> build\lib.win-amd64-3.10\lxml
creating build\lib.win-amd64-3.10\lxml\includes
copying src\lxml\includes\__init__.py -> build\lib.win-amd64-3.10\lxml\includes
creating build\lib.win-amd64-3.10\lxml\html
copying src\lxml\html\builder.py -> build\lib.win-amd64-3.10\lxml\html
copying src\lxml\html\clean.py -> build\lib.win-amd64-3.10\lxml\html
copying src\lxml\html\defs.py -> build\lib.win-amd64-3.10\lxml\html
copying src\lxml\html\diff.py -> build\lib.win-amd64-3.10\lxml\html
copying src\lxml\html\ElementSoup.py -> build\lib.win-amd64-3.10\lxml\html
copying src\lxml\html\formfill.py -> build\lib.win-amd64-3.10\lxml\html
copying src\lxml\html\html5parser.py -> build\lib.win-amd64-3.10\lxml\html
copying src\lxml\html\soupparser.py -> build\lib.win-amd64-3.10\lxml\html
copying src\lxml\html\usedoctest.py -> build\lib.win-amd64-3.10\lxml\html
copying src\lxml\html\_diffcommand.py -> build\lib.win-amd64-3.10\lxml\html
copying src\lxml\html\_html5builder.py -> build\lib.win-amd64-3.10\lxml\html
copying src\lxml\html\_setmixin.py -> build\lib.win-amd64-3.10\lxml\html
copying src\lxml\html\__init__.py -> build\lib.win-amd64-3.10\lxml\html
creating build\lib.win-amd64-3.10\lxml\isoschematron
copying src\lxml\isoschematron\__init__.py -> build\lib.win-amd64-3.10\lxml\isoschematron
copying src\lxml\etree.h -> build\lib.win-amd64-3.10\lxml
copying src\lxml\etree_api.h -> build\lib.win-amd64-3.10\lxml
copying src\lxml\lxml.etree.h -> build\lib.win-amd64-3.10\lxml
copying src\lxml\lxml.etree_api.h -> build\lib.win-amd64-3.10\lxml
copying src\lxml\includes\c14n.pxd -> build\lib.win-amd64-3.10\lxml\includes
copying src\lxml\includes\config.pxd -> build\lib.win-amd64-3.10\lxml\includes
copying src\lxml\includes\dtdvalid.pxd -> build\lib.win-amd64-3.10\lxml\includes
copying src\lxml\includes\etreepublic.pxd -> build\lib.win-amd64-3.10\lxml\includes
copying src\lxml\includes\htmlparser.pxd -> build\lib.win-amd64-3.10\lxml\includes
copying src\lxml\includes\relaxng.pxd -> build\lib.win-amd64-3.10\lxml\includes
copying src\lxml\includes\schematron.pxd -> build\lib.win-amd64-3.10\lxml\includes
copying src\lxml\includes\tree.pxd -> build\lib.win-amd64-3.10\lxml\includes
copying src\lxml\includes\uri.pxd -> build\lib.win-amd64-3.10\lxml\includes
copying src\lxml\includes\xinclude.pxd -> build\lib.win-amd64-3.10\lxml\includes
copying src\lxml\includes\xmlerror.pxd -> build\lib.win-amd64-3.10\lxml\includes
copying src\lxml\includes\xmlparser.pxd -> build\lib.win-amd64-3.10\lxml\includes
copying src\lxml\includes\xmlschema.pxd -> build\lib.win-amd64-3.10\lxml\includes
copying src\lxml\includes\xpath.pxd -> build\lib.win-amd64-3.10\lxml\includes
copying src\lxml\includes\xslt.pxd -> build\lib.win-amd64-3.10\lxml\includes
copying src\lxml\includes\__init__.pxd -> build\lib.win-amd64-3.10\lxml\includes
copying src\lxml\includes\etree_defs.h -> build\lib.win-amd64-3.10\lxml\includes
copying src\lxml\includes\lxml-version.h -> build\lib.win-amd64-3.10\lxml\includes
creating build\lib.win-amd64-3.10\lxml\isoschematron\resources
creating build\lib.win-amd64-3.10\lxml\isoschematron\resources\rng
copying src\lxml\isoschematron\resources\rng\iso-schematron.rng -> build\lib.win-amd64-3.10\lxml\isoschematron\resources\rng
creating build\lib.win-amd64-3.10\lxml\isoschematron\resources\xsl
copying src\lxml\isoschematron\resources\xsl\RNG2Schtrn.xsl -> build\lib.win-amd64-3.10\lxml\isoschematron\resources\xsl
copying src\lxml\isoschematron\resources\xsl\XSD2Schtrn.xsl -> build\lib.win-amd64-3.10\lxml\isoschematron\resources\xsl
creating build\lib.win-amd64-3.10\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_abstract_expand.xsl -> build\lib.win-amd64-3.10\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_dsdl_include.xsl -> build\lib.win-amd64-3.10\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_message.xsl -> build\lib.win-amd64-3.10\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_skeleton_for_xslt1.xsl -> build\lib.win-amd64-3.10\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_svrl_for_xslt1.xsl -> build\lib.win-amd64-3.10\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\readme.txt -> build\lib.win-amd64-3.10\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
running build_ext
building 'lxml.etree' extension
error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
----------------------------------------
ERROR: Command errored out with exit status 1: 'C:\Users\cahez\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\python.exe' -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\cahez\\AppData\\Local\\Temp\\pip-install-8rz9vrlv\\lxml_69e9fa188fd042d6953641882e4b3a17\\setup.py'"'"'; __file__='"'"'C:\\Users\\cahez\\AppData\\Local\\Temp\\pip-install-8rz9vrlv\\lxml_69e9fa188fd042d6953641882e4b3a17\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\cahez\AppData\Local\Temp\pip-record-xpg_v_i_\install-record.txt' --single-version-externally-managed --user --prefix= --compile --install-headers 'C:\Users\cahez\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\Include\lxml' Check the logs for full command output.
Upvotes: 5
Views: 5178
Reputation: 14233
One of the dependencies for python-docx
is lxml
. The latest stable version of lxml
is 4.6.3, released on March 21, 2021. On PyPI there is no lxml wheel for 3.10, yet. So it try to compile from source and for that Microsoft Visual C++ 14.0 or greater is required, as stated in the error.
However you can manually install lxml
, before install python-docx
. Download and install unofficial binary from Gohlke
Alternatively you can use pipwin to install it from Gohlke. Note there may still be problems with dependencies for lxml
.
Of course, you can also downgrade to python3.9.
EDIT: As of 14 Dec 2021 the latest lxml version 4.7.1 supports python 3.10
Upvotes: 6