2. 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.

2.1. 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.

2.2. Install optional elements

We recommend you to install the following elements. They are not mandatory but they activate very interesting features in CubicWeb:

Other elements will activate more features once installed. Take a look at Installation dependencies.

2.3. Useful tools

Some additional tools could be useful to develop 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).

2.4. Getting the sources

There are two ways to get the sources of CubicWeb and its cubes:

2.5. 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.

2.6. 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.