|Version 6 (modified by 9 years ago) (diff),|
Building Twisted on Windows
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.
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 Zope
Interface 3.3.0 or later for Python
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 Cygwin installed, you need to make sure these two packages are installed:
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
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.
Download and install it for both versions of Python.
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.
You need this little module: http://www.rutherfurd.net/python/winreg/
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.
If you have trouble building the official build, try the following:
- Remove "C:\winnt\aap.bat" or "C:\windows\aap.bat" which will have incorrect contents.
- Make sure that your system PATH includes C:\Program Files\AAP\Exec
- Make sure your cygwin .bash_profile isn't clobbering this system PATH
- Make sure you don't have Cygwin's Python package installed.
- Make sure both Python 2.5 and Python 2.4 are installed.
- If you're doing an official release, see maintainer-notes.txt.
Windows Maintainer Instructions
- Wait for an official release of some kind
- Download the Twisted tarball for that release. Do not download subpackage tarballs, download only the full Twisted release.
- Unpack this tarball.
- In the unpacked sumo directory, svn co svn+ssh://svn.twistedmatrix.com/svn/Twisted/trunk/win32
- aap -f win32/build.aap
- Rename twisted.pth -> twisted.pth_ so twisted is not in the python path
- Install dist/Twisted*2.4*.exe\
- Run Twisted Command Prompt
- Run mktap, twistd with no args. Observe no errors.
- Repeat steps 7, 8, 9 for dist/Twisted*2.5*.exe
- Rename twisted.pth_ -> twisted.pth\
- Bug someone to give you g+w to /twisted/Releases/Twisted/2.?
- Upload dist/*.exe to twistedmatrix.com:/twisted/Releases/Twisted/2.?
- Make sure uploaded files are mode 664, group cvs-twisted
- Update the Wiki front page and the TwistedProject page with the new urls.
- Repeat at step 1.