wiki:WindowsBuilds

Building Twisted on Windows

OVERVIEW

Some requirements must be met to build the "Official" win32 Twisted. The Official build produces two files with the following features:

  • One of the builds is for Python 2.5, the other is for Python 2.4.
  • There is a shortcut in the start menu for the Twisted Command Prompt which is a standard Windows command prompt with PATH and environment variables set up to invoke the Twisted commands the same way you would on Unix; e.g. "mktap".

There are two ways to get Twisted installed from source. One is to do the bare minimum necessary so that 'import twisted' works; the other is the Official method.

BARE MINIMUM

This method is only necessary if you are trying to install Twisted from e.g. the Subversion repository, and you don't want to acquire all the tools necessary to do the Official build.

  • Install either Python 2.4 or Python 2.5
  • Install ZopeInterface 3.3.0 or later for Python

With MSVC

Without Cygwin installed, you need MSVC installed for the cl.exe compiler, which is the default on windows. Just issue the command: $ python setup.py install

With Mingw

The easiest way to build the extensions without MSVC is to install MinGW, for example using the automated installer. Then, create a distutils.cfg file in your distutils installation path (for example, C:\Python2.5\Lib\distutils\distutils.cfg), and put the following content:

[build]
compiler=mingw32

And then issue $ python setup.py install. You can also pass the --compiler=mingw32 option to the build command instead of using distutils.cfg.

With Cygwin

With Cygwin installed, you need to make sure these two packages are installed:

  • gcc
  • gcc-mingw

Once that's done, just issue the command:

python setup.py build --compiler=mingw32 install

If for some reason extensions won't build, try this instead:

python setup.py build_py build_scripts install --skip-build

OFFICIAL

The Official Twisted is built with native Python 2.3 (latest), not the Cygwin version of Python, however it is built with the help of Cygwin packages.

  • Python 2.5 AND Python 2.4

You need both.

  • ZopeInterface 3.3.0

Download and install it for both versions of Python.

  • A-A-P

This is what actually does the building. http://www.a-a-p.org/download.html

After installing it, make sure the file aap.bat is in your system PATH, using (for example) the environment variable applet.

  • winreg

You need this little module: http://www.rutherfurd.net/python/winreg/

  • Cygwin

You will need Cygwin, with the gcc-mingw package installed. Get Cygwin at: http://cygwin.com

DO NOT INSTALL CYGWIN PYTHON!

DO NOT INSTALL CYGWIN PYTHON!

(Install Native Windows Python.)

  • Inno Setup

This creates nice self-installers with uninstall functionality: http://www.jrsoftware.org/isinfo.php

You need version 4.0.8 or above. (5.0.8 or later preferred.)

  • Bootstrap Twisted

You will need an existing installation of Twisted, as the build script uses some utilities within Twisted. The "bare minimum" install described above will suffice.

  • Issue the build command

Bring up a Cygwin prompt. Change directories to the root of your Twisted source tree. It should contain the directory "win32/". Now run the following:

aap.bat -f win32/build.aap

The four distributable files will be in dist/ when this is done.

TROUBLESHOOTING

If you have trouble building the official build, try the following:

  1. Remove "C:\winnt\aap.bat" or "C:\windows\aap.bat" which will have incorrect contents.
  2. Make sure that your system PATH includes C:\Program Files\AAP\Exec
  3. Make sure your cygwin .bash_profile isn't clobbering this system PATH
  4. Make sure you don't have Cygwin's Python package installed.
  5. Make sure both Python 2.5 and Python 2.4 are installed.
  6. If you're doing an official release, see maintainer-notes.txt.

Windows Maintainer Instructions

  1. Wait for an official release of some kind
  2. Download the Twisted tarball for that release. Do not download subpackage tarballs, download only the full Twisted release.
  3. Unpack this tarball.
  4. In the unpacked sumo directory, svn co svn+ssh://svn.twistedmatrix.com/svn/Twisted/trunk/win32
  5. aap -f win32/build.aap
  6. Rename twisted.pth -> twisted.pth_ so twisted is not in the python path
  7. Install dist/Twisted*2.4*.exe\
  8. Run Twisted Command Prompt
  9. Run mktap, twistd with no args. Observe no errors.
  1. Repeat steps 7, 8, 9 for dist/Twisted*2.5*.exe
  2. Rename twisted.pth_ -> twisted.pth\
  3. Bug someone to give you g+w to /twisted/Releases/Twisted/2.?
  4. Upload dist/*.exe to twistedmatrix.com:/twisted/Releases/Twisted/2.?
  5. Make sure uploaded files are mode 664, group cvs-twisted
  6. Update the Wiki front page and the TwistedProject page with the new urls.
  7. Repeat at step 1.
Last modified 7 years ago Last modified on 06/03/2008 07:52:57 AM