.. -*- coding: utf-8 -*- .. _SetUpWindowsEnv: Installing a development environement on Windows ================================================ Setting up a Windows development environment is not too complicated but it requires a series of small steps. We propose an example of a typical |cubicweb| installation on Windows from sources. We assume everything goes into ``C:\\`` and for any package, without version specification, "the latest is the greatest". Mind that adjusting the installation drive should be straightforward. Install the required elements ----------------------------- |cubicweb| requires some base elements that must be installed to run correctly. So, first of all, you must install them : * python >= 2.6 and < 3 (`Download Python `_). You can also consider the Python(x,y) distribution (`Download Python(x,y) `_) as it makes things easier for Windows user by wrapping in a single installer python 2.7 plus numerous useful third-party modules and applications (including Eclipse + pydev, which is an arguably good IDE for Python under Windows). * `Twisted `_ is an event-driven networking engine (`Download Twisted `_) * `lxml `_ library (version >=2.2.1) allows working with XML and HTML (`Download lxml `_) * `Postgresql `_, an object-relational database system (`Download Postgresql `_) and its python drivers (`Download psycopg `_) * A recent version of `gettext` (`Download gettext `_). * `rql `_, the recent version of the Relationship Query Language parser. Install optional elements ------------------------- We recommend you to install the following elements. They are not mandatory but they activate very interesting features in |cubicweb|: * `python-ldap `_ provides access to LDAP/Active directory directories (`Download python-ldap `_). * `graphviz `_ which allow schema drawings. (`Download graphviz `_). It is quite recommended (albeit not mandatory). Other elements will activate more features once installed. Take a look at :ref:`InstallDependencies`. Useful tools ------------ Some additional tools could be useful to develop :ref:`cubes ` with the framework. * `mercurial `_ and its standard windows GUI (`TortoiseHG `_) allow you to get the source code of |cubicweb| from control version repositories. So you will be able to get the latest development version and pre-release bugfixes in an easy way (`Download mercurial `_). * You can also consider the ssh client `Putty` in order to peruse mercurial over ssh (`Download `_). * If you are an Eclipse user, mercurial can be integrated using the `MercurialEclipse` plugin (`Home page `_). Getting the sources ------------------- There are two ways to get the sources of |cubicweb| and its :ref:`cubes `: * download the latest release (:ref:`SourceInstallation`) * get the development version using Mercurial (:ref:`MercurialInstallation`) Environment variables --------------------- You will need some convenience environment variables once all is set up. These variables are settable through the GUI by getting at the `System properties` window (by righ-clicking on `My Computer` -> `properties`). In the `advanced` tab, there is an `Environment variables` button. Click on it. That opens a small window allowing edition of user-related and system-wide variables. We will consider only user variables. First, the ``PATH`` variable. Assuming you are logged as user *Jane*, add the following paths, separated by semi-colons:: C:\Documents and Settings\Jane\My Documents\Python\cubicweb\cubicweb\bin C:\Program Files\Graphviz2.24\bin The ``PYTHONPATH`` variable should also contain:: C:\Documents and Settings\Jane\My Documents\Python\cubicweb\ From now, on a fresh `cmd` shell, you should be able to type:: cubicweb-ctl list ... and get a meaningful output. Running an instance as a service -------------------------------- This currently assumes that the instances configurations is located at ``C:\\etc\\cubicweb.d``. For a cube 'my_instance', you will find ``C:\\etc\\cubicweb.d\\my_instance\\win32svc.py``. Now, register your instance as a windows service with:: win32svc install Then start the service with:: net start cubicweb-my_instance In case this does not work, you should be able to see error reports in the application log, using the windows event log viewer.