On Windows I can't use a source build of Python to create a venv which will compile C extensions because pyconfig.h cannot be found. For example running build running build_ext building 'demo' extension creating build creating build\temp.win32-3.3 creating build\temp.win32-3.3\Release c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Repos\cpython\include -IC:\Users\oudkerk\myenv\PC /Tcdemo.c /Fobuild\temp.win32-3.3\Release\demo.obj demo.c C:\Repos\cpython\include\Python.h(8) : fatal error C1083: Cannot open include file: 'pyconfig.h': No such file or directory error: command '"c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\cl.exe"' failed with exit status 2 The problem seems to be with the following line in distutils/command/build_ext.py: self.include_dirs.append(os.path.join(sys.exec_prefix, 'PC')) Inside a venv, sys.exec_prefix is the venv directory.
New changeset a970054a93fb by Vinay Sajip in branch 'default': Closes #15367: Corrected computation of include locations for source builds on Windows. Thanks to Richard Oudkerk for the bug report and patch. http://hg.python.org/cpython/rev/a970054a93fb