[Python-Dev] Build Notes for building trunk with Visual Studio 2008 Express Edition

Paul Moore p.f.moore at gmail.com
Fri Nov 23 15:53:42 CET 2007


I have just built the current trunk version of Python on Windows,
using the new PCBuild9 directory, and Visual Studio 2008 Express
Edition.

Everything went extremely well. I include below my notes on what I
did, for reference. To be honest, there's nothing in here that really
warrants a change to the readme.txt - to all intents and purposes, the
process "just works".

OK, here are my notes:

Install Visual C++ 2008 Express Edition. Only select Silverlight from
the options (no documentation or SQL Server - Silverlight probably
isn't actually needed either).
I already had the Platform SDK installed, but did nothing to tell VS
about it, or to integrate it. I doubt this is relevant.

I am using Python trunk at revision 59132. (But I hit an issue fixed
in 59136, so better to use that).

Start VC.
Open project PCBuild9\pcbuild.sln
Message "Solution Folders are not supported in this version of Visual
Studio. Solution folder 'Solution Items' will be displayed as
unavailable." Select OK.

Select the release build (Build > Configuration Manager)

Right click pythoncore > Build
  make_buildinfo - succeeded 1 warning (unlink vs _unlink)
  make_versioninfo - succeeded
  pythoncore - I hit an error in ast.c so I needed to svn up (to
59136). Succeeded.

Right click python > Build. Succeeded.
Right click pythonw > Build. Succeeded.
Right click _socket > Build. Succeeded.
Right click _testcapi > Build. Succeeded.
Right click pyexpat > Build. Succeeded.
Right click select > Build. Succeeded.
Right click unicodedata > Build. Succeeded.
Right click winsound > Build. Succeeded.

At this point, we have finished the modules documented as "build out
of the box" in PCBuild9\readme.txt.

The modules _tkinter, bz2, _bsddb, _sqlite3, _ssl are documented as
having dependencies. See below.

Modules _ctypes, _ctypes_test, _elementtree, _msi, w9xpopen are not
mentioned in readme.txt. They all build without error.

bz2
---

The include dir is a macro, and I can't work out how to override the
default (which is bzip2-1.0.3). So I stuck to 1.0.3 and exported it
from Python svn, as per the instructions.

Built OK.

_sqlite3
--------

Again, couldn't work out how to change the macro, so I stuck with the
external from svn (sqlite-source-3.3.4).

The pre-link step failed with an error about not finding TCL. I edited
the prelink step to include a /DNO_TCL flag on the cl command. There
may be a better approach - I don't know if not having TCL is an issue
for Python's use of sqlite.

_tkinter and _bsddb
-------------------

The instructions suggest using VS 2003 to build the dependencies. I
don't have VS 2003 and don't have the time at the moment to
investigate further.

_ssl
----

Christian has been making changes to allow this to build without Perl,
so I gave it a try. I used openssl 0.9.8g, which I extracted to the
build directory (I noticed afterwards that this is the same version as
in Python svn, so I could have used the svn external!)

I needed to download nasm (nasm.sf.net) version 2.00rc1, and rename
nasm.exe to nasmw.exe and put it on my PATH.

Build succeeded, no issues.

Tests
-----

Running the tests, all succeed except test_tcl and test_bsddb, which
are because I didn't build those two extensions, and test_os. The
test_os failure is just because it looks for C:\pagefile.sys and my
pagefile is on D:\.

(There's also a problem with test_socket_ssl hanging, but this is
present in the standard 2.6 snapshot build. I've raised a separate bug
report for this).

Paul.


More information about the Python-Dev mailing list