Question: 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. 

Answer: 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