{{{ #!div style="margin-top: .5em; padding: 0 1em; background-color: #ffd; border:1px outset #ddc;" '''Please Note:''' These instructions are for '''Trac 0.11''' (beta2 more precisely). The instructions for Trac 0.10 can be found at the ["0.10/TracOnWindows"] page. }}} = Trac On Windows = [[PageOutline(2-3)]] The installation of Trac on Windows is now much simpler, due to the dropping of ClearSilver as the primary template engine in favor of Genshi (Clearsilver is still optionally supported in case you need to use a plugin that requires it). If furthermore you don't need to interface with Subversion, then all you need besides are a few Python packages. It doesn't hurt to have an `svn` client at hand for checking out the latest "trunk" version of some packages, like Trac itself or Genshi. == Installing Python on Windows == After the installation, don't forget to add the path to the directory where you chose to install Python to your PATH environment variable. This is important to be able to run the Python executable from any directory in the command line. === Python 2.4 === Download and run the Python MSI installer: [http://www.python.org/ftp/python/2.4.4/python-2.4.4.msi python-2.4.4.msi] === Python 2.5 === Simply [http://www.python.org/download/releases/2.5/#download-the-release download] and install the appropriate .msi for your Python platform: - [http://www.python.org/ftp/python/2.5/python-2.5.msi Python-2.5.msi] - [http://www.python.org/ftp/python/2.5/python-2.5.amd64.msi Python-2.5.amd64.msi] - [http://www.python.org/ftp/python/2.5/python-2.5.ia64.msi Python-2.5.ia64.msi] (Note that the Subversion project doesn't provide amd64 or ia64 setup executables, so if you want to use Subversion integration, you'll need to either compile the bindings yourself, or use the x86 version of Python). == Method 1: Using Installers == #using-installers You need to download and install the following packages, pick the link appropriate to your Python version: || '''Mandatory Packages''' || '''Installers''' || || '''SetupTools''' || setuptools-0.6c7.win32-py2.''X''.exe ([http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c7.win32-py2.5.exe#md5=395a81d709766f3a0d6084964cb98b5a 2.5], [http://pypi.python.org/packages/2.4/s/setuptools/setuptools-0.6c7.win32-py2.4.exe#md5=8109dbab4d86a24e8b5ef1881c9fcbb1 2.4], [http://pypi.python.org/packages/2.3/s/setuptools/setuptools-0.6c7.win32-py2.3.exe#md5=6bd6f02383edc580a311a070e8d360f5 2.3]) || || '''[genshi:milestone:0.4.4 Genshi 0.4.4]''' || [http://ftp.edgewall.com/pub/genshi/Genshi-0.4.4.win32.exe Genshi-0.4.4.win32.exe] (works for Python 2.3, 2.4 and 2.5) || || '''[milestone:0.11 Trac 0.11]''' || [http://ftp.edgewall.com/pub/trac/Trac-0.11b2.win32.exe trac-0.11b2.win32.exe] (works for Python 2.3, 2.4 and 2.5) || || ''Optional Packages'' || ''Installers'' || ''^(see notes below)^'' || || ''PySqlite'' || pysqlite-2.4.0.win32-py2.''X''.exe ([http://initd.org/pub/software/pysqlite/releases/2.4/2.4.0/pysqlite-2.4.0.win32-py2.5.exe 2.5], [http://initd.org/pub/software/pysqlite/releases/2.4/2.4.0/pysqlite-2.4.0.win32-py2.4.exe 2.4], [http://initd.org/pub/software/pysqlite/releases/2.4/2.4.0/pysqlite-2.4.0.win32-py2.3.exe 2.3]) || ^(1)^ || || ''[TracSubversion Subversion]'' || svn-python-1.4.6.win32-py2.''X''.exe - ([http://subversion.tigris.org/files/documents/15/41086/svn-python-1.4.6.win32-py2.5.exe 2.5], [http://subversion.tigris.org/files/documents/15/41085/svn-python-1.4.6.win32-py2.4.exe 2.4], [http://subversion.tigris.org/files/documents/15/41084/svn-python-1.4.6.win32-py2.3.exe 2.3]) || ^(2)^ || || ''ClearSilver'' || clearsilver-0.9.14.win32-py2.''X''.exe - ([http://www.clearsilver.net/downloads/win32/clearsilver-0.9.14.win32-py2.4.exe 2.4], [http://www.clearsilver.net/downloads/win32/clearsilver-0.9.14.win32-py2.3.exe 2.3]) || ^(3)^ || '''Notes:''' 1. ''Pysqlite'' - If you're using Python 2.5, Trac is able to use the built-in sqlite3 module (same as Pysqlite 2.3.2), so you don't necessarily need to install that package. - If you plan to use another database than SQLite, installing Pysqlite is of course not needed. See the TracOnWindows/Advanced instructions for other options. 2. ''Subversion'' - You don't necessarily need Subversion. You can use Trac with other [VersioningSystemBackend versioning system backends] or none at all. - If you need Subversion, the above links should be fine, '''unless''' you need to use Trac within Apache 2.2. In that case you need [http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=91 Apache 2.2 compatible binaries]. But beware, this is a tricky install, as it seems that there exist various incompatibilities between the various released binaries (in particular, see ticket:6739#comment:9). 3. ''Clearsilver'' You only need Clearsilver if you're using a plugin that was not yet ported to Genshi. There's no pre-built version for Python 2.5, AFAIK. == Method 2: Manual Installation == This methods is about using `easy_install` (from Setuptools) at the command line. Ideally, once everything will have settle down, this will be a matter of doing `easy_install Trac` Don't try that yet, though, rather go through the following steps. === Setuptools === [http://peak.telecommunity.com/DevCenter/setuptools Setuptools] makes installation of Python software easier by automatically downloading and installing Python packages from the internet. It is also used to find and load [wiki:TracPlugins Trac's plugins]. Download the setuptools installer: [http://peak.telecommunity.com/dist/ez_setup.py ez_setup.py] When the download completes double-click the "ez_setup.py" file from your download folder to install setuptools. === The command line === You'll need to open a Windows command line to install some of the necessary software: 1. Click "Start" > "Run..." (or press Win+R) 1. Type "cmd" and click "Ok" - this opens the Windows command console 1. Type "cd c:\Python24\Scripts" You should now be in the folder "C:\Python24\Scripts" where you can run the "easy_install" command to install the required software. === Installing Genshi === [http://genshi.edgewall.org/wiki/Download#Zippackage Download] the zip package: - [http://ftp.edgewall.com/pub/genshi/Genshi-0.4.4.zip Genshi-0.4.4.zip] Unzip to a folder and then from that folder run `python setup.py install` in a command window. (Make sure you have added the Python install path (e.g. C:\Program Files\Python25) to your system PATH variable. You can do this by right clicking on My Computer, clicking on Properties, selecting the Advanced tab, clicking the Environment Variables button, scrolling down the second list window until you see the 'Path' variable, then editing the string to add the Python install path. Then start command line for Genshi installation.) === Install PySQLite === Install the [http://pysqlite.org PySqlite] database driver: {{{ easy_install pysqlite }}} If you want to use another database than SQLite, you need to read the TracOnWindows/Advanced instructions. Note: When installing PySQLite this way, you may see the following error: >Error: Setup script exited with error: Python was built with version 7.1 >of Visual Studio, and extensions need to be built with the same version >of the compiler, but it isn't installed. If so, try installing PySQLite with the Windows executable installer referenced in the [#using-installers Method 1] above. When it has finished downloading, double-click on it to run the installer. On the first window of the installation dialog, click Next to begin the installation process. On the second window, confirm the Python install directory. If you have followed the instructions above, it will be "c:\python24\". The default install directory will show as "c:\python24\Lib\site-packages\". Accept the defaults or change them to match your own directory structure. Click Next to proceed. The next window in the dialog gives you a chance to cancel or continue. To continue, click Next. On the next window, the installer shows you installation progress as files are written to the target locations. When the processing is complete, click Finish. If you check the contents of c:\python24\Lib\site-packages\ directory, you should see the directory '''pysqlite2''', which contains the database scripts. [[comment(ugh, again a TracForDummies section)]] === Install Subversion (optional) === #Subversion ==== ==== #svntools Trac can integrate with the [http://subversion.tigris.org Subversion] version control software. Follow these steps if you'd like to use Trac with Subversion. You can learn more about how they can integrate from the wiki: TracSubversion. This document covers using the Subversion command line tools, but you can also use the [http://tortoisesvn.net/ TortoiseSVN] Windows GUI. Download and run the installer for the Subversion command line tools: [http://subversion.tigris.org/files/documents/15/35379/svn-1.4.2-setup.exe svn-1.4.2-setup.exe] The installation begins by displaying a small dialog titled '''Setup'''. It asks you whether you wish to continue. Click Yes. A larger window appears, titled '''Setup - Subversion'''. The first window of the dialog says "Welcome to the Subversion Setup Wizard". Click Next. Click "I accept the agreement" and then click Next. On the next window, read the important information and click Next. Select your destination directory for the Subversion installation. Click Next. You will then have the option of installing a Subversion menu item on the Start Menu, and a selection of places to put Subversion icons. Click Next. Finally you are ready to install. Click Next and the files will be copied to your selected destination. A couple more windows follow the install process, and then you're done. ==== ==== #svnbindings Go back to your command line to install the Subversion Python library: {{{ easy_install -Z http://subversion.tigris.org/downloads/1.4.5-win32/apache-2.0/svn-python-1.4.5.win32-py2.5.exe }}} (pick the appropriate download link matching your installed Python version) '''Note:''' the "-Z" option is necessary when installing Subversion so that it is "unzipped". Trac will not be able to access Subversion if it is zipped. The installation process will begin with "Downloading http://subversion.tigris.org/downloads/svn-python-1.4.2.win32-py2.4.exe" and -- if successful -- ends with "Processing dependencies for svn-python==1.4.2". === Install ClearSilver (optional) === Install the [http://www.clearsilver.net/ ClearSilver] template language: {{{ easy_install -f http://clearsilver.net/downloads clearsilver==0.9.14 }}} === Installing mod_python (optional) === This is needed if you want to use with the Apache HTTP server. If you are using an Apache server, you will need the latest mod_python for windows, built against Python v2.5. Currently version 3.3.1 is available at the [http://httpd.apache.org/download.cgi Apache] website (click on "Other Files" and surf to `modpython/win/3.3.1/`). However, you can also get other versions [http://nicolas.lehuen.com/download/mod_python/ here], courtesy of a very kind and wise gentleman called Nicolas Lehuen. See TracModPython for instructions. An alternative would be to use mod_wsgi (download [http://adal.chiriliuc.com/mod_wsgi/revision_866_2.0c5 mod_wsgi.so 2.0c5] for several Apache and Python combinations). See ["TracModWSGI"] for instructions. === Installing plugins === There's no need to install the WebAdmin plugin, as it has now been integrated in Trac proper. Quite to the contrary, you should remove it if you're upgrading (it will be automatically disable though, so don't worry). See TracPlugins for details about plugin installation. For example, you can install the SpamFilter plugin. For that, you can grab them directly from the repository, and install it the same way you did for Trac: {{{ > cd C:\src > svn checkout http://svn.edgewall.org/repos/trac/sandbox/spam-filter > cd spam-filter > python setup.py install }}} Note if you catch an error:"ImportError: No module named setuptools" please download http://peak.telecommunity.com/dist/ez_setup.py and install the setuptools. If for some reason the above step fails, either because there's no package for the Windows platform you're using or the setuptools don't manage to read information from your svn working copy (if you used Subversion 1.4 for doing the checkout), you'll probably need to install first a recent `setuptools` package, itself available from `http://svn.python.org/projects/sandbox/trunk/setuptools`. Version 0.7a1 (!r51948) from the repository worked for me. === Installing Trac === You simply need the latest trunk (0.11dev) (beta1 to come ''very'' soon) - to get this type the following in the command window. (Make sure you have added the Python install path (e.g. C:\Program Files\Python25) to your system PATH variable. You can do this by right clicking on My Computer, clicking on Properties, selecting the Advanced tab, clicking the Environment Variables button, scrolling down the second list window until you see the 'Path' variable, then editing the string to add the Python install path). Make sure you have [http://peak.telecommunity.com/DevCenter/EasyInstall#installation-instructions setuptools] installed before proceed. {{{ > cd C:\src > svn checkout http://svn.edgewall.org/repos/trac/trunk > cd trunk > python setup.py install }}} Then, have a look at how to setup the TracEnvironment, use the TracStandalone web front-end and you're set. '''More specifically''', do this to get 0.11 with webadmin up and running:[[BR]] Create an administrator user (uses a script described elsewhere in the wiki)[[BR]] python trac-digest.py -u adm -p adm >> c:\digest.txt[[BR]] Give that user all permissions[[BR]] trac-admin c:\myproj permission add adm TRAC_ADMIN[[BR]] Now...[[BR]] tracd -p 8000 --auth=myproj,c:\digest.txt,trac c:\myproj[[BR]] And you'll be able to see the Admin tab if you log in with 'adm'[[BR]] == Getting Started == Ok, now that Trac and all its requirements have been installed you can create your first project and try it out. This example will create the projects in "C:\projects". This is a good default location, but you can put them in another drive or folder if you prefer. Back to the command line: {{{ md c:\projects cd c:\projects }}} '''Optional:''' if you're using Trac with Subversion you can create a new repository for your source code: {{{ md c:\projects\svn svnadmin create c:\projects\svn\my-project }}} This step causes Subversion to create a subdirectory (c:\projects\svn\my-project) containing the basics of a Subversion project. === Initialize a new Trac project environment: === First go to the 'Scripts' folder in your Python install directory (e.g. "\Python25\Scripts"), and add the '.py' extension onto the files 'tracd' and 'trac-admin' if this is missing. Then, type the following at the command line: {{{ md c:\projects\trac c:\Python25\Scripts\trac-admin.exe c:\projects\trac\my-project initenv }}} Follow the interactive prompts to input information about your project. If you are unsure what to put you can simply press "Enter" to accept the default value. {{{ Project Name [My Project]> Database connecting string [sqlite:db/trac.db]> Repository type [svn]> Path to repository [/path/to/repos]> Template directory [C:\Python25\share\trac\templates]> }}} After this response, the script will say "Creating and Initializing Project". A large number of messages will scroll, finishing with "Congratulations!". '''Note for Subversion users:''' when asked for the "Path to repository" input the folder of the repository you just created: {{{ Path to repository [/path/to/repos]> c:/projects/svn/my-project }}} '''Note:''' be sure to include the full path, including the drive letter. == Try it out == Trac includes a standalone webserver called [wiki:TracStandalone tracd]. You can also use Trac with other webservers, but you should first try tracd to make sure everything's set up and working correctly: From the command line, and in the [Python Install]\Scripts directory: {{{ tracd-script.py -p 8000 c:\projects\trac\my-project }}} > This exits with the following error on my system: > Usage: tracd-script.py [options] [projenv] ... > tracd-script.py: error: either the --env-parent-dir option or at least one > environment must be specified > The following works, though: {{{ tracd.exe -p 8000 c:\projects\trac\my-project }}} > --- dummzeuch Open your browser to http://localhost:8000 to test out your new Trac project. You should see the title "Welcome to Trac 0.11b2" in your browser, and in the command window from which you just launched '''tracd''' there will be a series of status log messages. These messages will continue to update as you move around the Trac site. When you are done, return to the command window from which you launched tracd and press Ctrl+Break to stop tracd. === Creating authentication with tracd on Windows (Standalone) === If you are running tracd without Apache, you can use this simple Python script to generate your passwords for tracd. Copy the contents below into a new file called 'C:\Python25\scripts\trac-digest.py'. {{{ #!python from optparse import OptionParser import md5 # build the options usage = "usage: %prog [options]" parser = OptionParser(usage=usage) parser.add_option("-u", "--username",action="store", dest="username", type = "string", help="the username for whom to generate a password") parser.add_option("-p", "--password",action="store", dest="password", type = "string", help="the password to use") (options, args) = parser.parse_args() # check options if (options.username is None) or (options.password is None): parser.error("You must supply both the username and password") # Generate the string to enter into the htdigest file realm = 'trac' kd = lambda x: md5.md5(':'.join(x)).hexdigest() print ':'.join((options.username, realm, kd([options.username, realm, options.password]))) }}} You can create a new password file, or add new users to the file, by executing this command from the command line: {{{ C:\Python25\Scripts\trac-digest.py -u "My User Name" -p my@user@password >> C:\projects\passwords.txt }}} To start tracd with authentication, execute this command from the command line: {{{ C:\Python25\Scripts\tracd-script.py -p 8000 --auth=dev,C:\projects\passwords.txt,trac c:\projects\trac\my-project }}} == Troubleshooting == ==== Unsupported version control system "svn" ==== The Subversion library is not installed properly. Be sure you used the "-Z" option with easy_install when [#svnbindings installing] the Subversion bindings. Also, ensure you are using forward slashes for the svn repository directory. ==== Error: Setup script exited with error: Python was built with version 7.1 of Visual Studio, and extensions need to be built with the same version of the compiler, but it isn't installed. ==== Note that something similar is probably happens between the apache 2.2 httpd.exe, python.exe, mod_python.so and the Subversion bindings. See #6739. From [http://www.mail-archive.com/trac-dev@googlegroups.com/msg00997.html] > The problem is that the pre-built Windows binaries for PySQLite are > currently not detected by setuptools, so it is trying to download and > compile the sources which requires a build environment. Unfortunately > this is not particularly common or easy on Windows. I have reported > the problem to the PySQLite developers, so hopefully they will > addresss this soon: http://initd.org/tracker/pysqlite/ticket/191 It appears you can successfully install Trac by following a combination of Method 2: Manual Installation and Method 1: Using Installers, above. The critical step for installing PySQLite is to use the self-installing EXE version, which does not trigger the bogus compile step. As noted above, download and execute the appropriate file: || ''PySqlite'' || [http://initd.org/pub/software/pysqlite/releases/2.3/2.3.2/pysqlite-2.3.2.win32-py2.4.exe pysqlite-2.3.2.win32-py2.4.exe] (or the [http://initd.org/pub/software/pysqlite/releases/2.3/2.3.2/pysqlite-2.3.2.win32-py2.3.exe Python 2.3 version]) || ---- See also: the TracOnWindows/Advanced instructions, TracOnWindows/Rewrite for discussing improvements to this page, ["0.10/TracOnWindows"] and ["Trac0.9/TracOnWindows"] for the previous version of this document.