PY2EXE walkthrough for Python 2.6 & FPDB 0.20 created by Gimick on 22nd June 2010 Step 0 Get a fresh XP installation ---------------------------------- 0.1/ Using XPhome 32bit Step 1, Python install ---------------------- 1.1/ install the following in sequence (accept all default options) there should be no errors ! Python 2.6.5 ... http://www.python.org/ftp/python/2.6.5/python-2.6.5.msi pywin 214 ... http://sourceforge.net/projects/pywin32/files/pywin32/Build%20214/pywin32-214.win32-py2.6.exe/download numpy 1.4.1 ... http://sourceforge.net/projects/numpy/files/NumPy/1.4.1/numpy-1.4.1-win32-superpack-python2.6.exe/download matplotlib 0.99.3 ... http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-0.99.3/matplotlib-0.99.3.win32-py2.6.exe/download pygtk 2.16.0 ... http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.16/pygtk-2.16.0.win32-py2.6.exe pycairo 1.8.6 ... http://ftp.gnome.org/pub/GNOME/binaries/win32/pycairo/1.8/pycairo-1.8.6.win32-py2.6.exe pyGobject 2.20.0 ... http://ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/2.20/pygobject-2.20.0.win32-py2.6.exe py2exe 0.6.9 ... http://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/py2exe-0.6.9.win32-py2.6.exe/download psycopg2 ... http://www.stickpeople.com/projects/python/win-psycopg/psycopg2-2.2.1.win32-py2.6-pg8.4.3-release.exe (Note: stickpeople is the offical repository, not a community build) 1.2/ MySQL MySQL-python-1.2.3.win32-py2.6-fpdb0.20.exe ... http://www.mediafire.com/file/iodnnnznmj1/MySQL-python-1.2.3.win32-py2.6-fpdb0.20.exe This is an intaller built from source by gimick. There are no official mysql-python2.6 build for windows. Community builds are also available from some developers. see www.codegood.com for example. Step 2 Setup GTK ----------------- There are quite a few GTK packages needed, and rather than install them individually, I used the official AllinOne from the GTK project. 2,1/ Create a new folder c:\GTK 2.2/ Extract the following zip file into c:\GTK GTK+ all in one 2.20.0 ... http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.20/gtk+-bundle_2.20.0-20100406_win32.zip 2.3/ If everything has worked, you should have c:\GTK\bin \etc \lib \src and so on created. Step 3 Set GTK into the PATH variable ------------------------------------- The path for GTK isn't set by default, so need to let the o/s know where the GTK stuff is. 3.1/ Rightclick on mycomputer to show system properties 3.2/ select advanced/environment Variables 3.3/ in "system variables" NOT "user variables" do the following 3.3.1/ create a new item as name: GTK_BASEPATH value: c:\GTK 3.3.2/ edit the item "path", press home to get to the first character and insert the following text, (no quotes, including semicolon) %GTK_BASEPATH%\bin; 3.4/ to check, open command prompt and do: dos>path ... system should respond with ... PATH=c:\GTK\bin;C:\WIN........ 3.5/ Give it a spin to test (hopefully an application will start, if not, something has gone wrong) dos> gtk-demo Step 4 Get the fpdb GIT tree ---------------------------- 4.1/ Best to take a copy to work with; following steps will assume that the fpdb folder is on the Desktop #Step 5 Put MSVCP90.dll temporarily into the fpdb folder #------------------------------------------------------- ###### Step 5 no longer required as py2exe is instructed not to include the visualc/c++ dll's # #py2exe will check for MSVCP90.dll. The version installed by python2.6.5runtime is not in the path, so we will put it in place #TEMPORARILY. This will/must be removed manually once the exe has been created, as we do not have a licence to redistribute. # #Search for MSVCP90.dll (should be found in C:\WINDOWS\WinSxS\... #copy this file TEMPORARILY to the Desktop\fpdb\pyfpdb folder Step 6 Run py2exe to generate fpdb.exe -------------------------------------- 6.1/ Run the script to create the fpdb.exe bundle dos> cd Desktop\fpdb\pyfpdb dos> c:\python26\python.exe py2exe_setup.py py2exe wait a while, watch lots of copying and whatever. 6.2/ You should next get prompted for the GTK folder. c:\GTK 6.3/ If there are no errors reported, it has probably worked, we will test soon. Build notes: There is a warning "c:\Python26\lib\site-packages\py2exe\build_exe.py:16: DeprecationWarning: the sets module is deprecated import sets". This is probably coming from mysql-python see here https://bugs.launchpad.net/python-mysqldb/+bug/338387 There is a warning about dll's not included "umath.pyd - c:\Python26\lib\site-packages\numpy\core\umath.pyd" - reason for this is not understood at present. (Umath is apparently included in the built package). #Step 7 Delete C++runtime #------------------------ # ###### Step 7 is no longer required (see step 5 for reason) # #This is really really important, this file must NOT be distributed, so get rid of it now to avoid issues. # #7.1/ in Desktop\fpdb\pyfpdb\ remove the file msvcp90.dll # Step 8 Drag out the completed bundle ------------------------------------ py2exe creates a new folder for the created software bundle, drag this out to the desktop for ease of working. As far as I know you cannot rerun the build if the fpdb-yyyymmdd-exe exists in the tree, so dragging this out also allows the build to re-run at step 6. 8.1/ Drag Desktop\fpdb\pyfpdb\fpdb-yyyymmdd-exe to Desktop\ Step 9 Initial run ------------------ 9.1/ Open the Desktop\fpdb-yyyymmdd-exe folder 9.2/ In explorer...tools...folder options...View uncheck "Hide extensions for known file types" 9.3/ Double click run_fpdb.bat 9.4/ check the contents of pyfpdb\fpdb.exe.log, deal with any errors thrown 9.5/ hopefully, fpdb will run 9.6/ Try out a few options, deal with any errors reported Observe that the msvcp90.dll was provided by the python runtime package, so we don't have to install the separate package from Microsoft. End-users will, however need the dependency. Step 11 pruning --------------- 11.1/ The generated folder is 100+MB and can be pruned by removing the following directories: pyfpdb/lib/glib-2.0 pyfpdb/lib/gtk-2.0/include pyfpdb/lib/pkgconfig pyfpdb/share/aclocal pyfpdb/share/doc pyfpdb/share/glib-2.0 pyfpdb/share/gtk-2.0 pyfpdb/share/gtk-doc pyfpdb/share/locale pyfpdb/share/man Step 12 rename folder --------------------- 12/ Rename the folder to something meaningful to the community Step 13 Compress to executable archive -------------------------------------- 13.1/ Download and install 7zip 914 ... http://sourceforge.net/projects/sevenzip/files/7-Zip/9.14/7z914.exe/download 13.2/ Rightclick on fpdb executable folder, select 7zip Add to archive... select SFX archive option switch 13.3/ Test the created exe file