Opentrain repository for community data analysis of Israel Railways train delay data.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Online Project Documentation

Interactive documentation is available at

Developer Environment Setup

The project runs on Python 3 with POSTGRES, and we recommend using a virtual environment for development. You can use the following command to setup a virtualenv called opentrain:

mkvirtualenv -p $(which python3) opentrain

You might need to first install the virtualenv package, via:

sudo pip install virtualenv

Then activate the environment:

cd opentrain
source bin/activate

Then install all of the required modules into your virtualenv using pip:

cd OpenTrainCommunity/train2
pip install -r requirements.txt

Note: Installation of numpy via pip might require fulfilling certain prerequisites.

sudo apt-get install postgresql libpq-dev

Database setup and import

Best way to start is to download the POSTGRES dump file.

  1. Download the latest sql dump from (you can download the gz file)
python <name-of-sql-file>

Note that the script will gunzip the file. You might need to run,

pip install argparse

In case you have already set a postgres user name, you could face:

ERROR:  role "postgres" does not exist

In this case, create a user name postgres before running the script.

On mac platform you might also have to change l29 in to

postgres_cmd = "sudo -u your_macuser psql"

Alternativley, you can use fab and run the following commands:

fab create_db
fab restore_db:<path-to-sql-gz-file>

Now you can start the server.

python runserver 


  • If you receive the error fatal error: xlocale.h: No such file or directory, it is likely due to a glibc header name change. One suggested solution is to manually create a symlink to the new name:

    ln -s /usr/include/locale.h /usr/include/xlocale.h
  • If you receive the error symbol __res_maybe_init version GLIBC_PRIVATE not defined in with link time reference, it is likely due to a psycopg bug and can likely be solved by upgrading psycopg2 to a later version like