diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 548619354936c164240d8dfefb4b025d4465131f..3a9d2faec8a27e0bf2b759b2566a5ea6dd221133 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -291,7 +291,7 @@ To write additional tests, create a directory under *Utest/*.
 - run the script `makeini.py` with the obligatory option `-f`: Using the
     aforementioned example the call is:
 ```bash
-   python makeini.py -f test_case1/inifile.xml
+   python3 makeini.py -f test_case1/inifile.xml
 ```
 
 The Script is going to create two directories:
@@ -305,7 +305,7 @@ The Script is going to create two directories:
 Your script has to start with the following lines:
 
 ```python
-#!/usr/bin/env python
+#!/usr/bin/env python3
 import os
 import sys
 from sys import *
diff --git a/Utest/Validation/1test_1D/run_validation_1.py b/Utest/Validation/1test_1D/run_validation_1.py
index 49e214efd0fc0854d46597a7185cb5de12321c14..35d964f490408ea9389f217098d6cfee10a0b833 100644
--- a/Utest/Validation/1test_1D/run_validation_1.py
+++ b/Utest/Validation/1test_1D/run_validation_1.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """
 Test description
 ================
diff --git a/Utest/Validation/2test_2D/run_validation_2.py b/Utest/Validation/2test_2D/run_validation_2.py
index 67892db0846237ea82f066f26d95d8d6db2ea3e4..918b881e5ae0eb30fb38ef57f14b245302b0435f 100644
--- a/Utest/Validation/2test_2D/run_validation_2.py
+++ b/Utest/Validation/2test_2D/run_validation_2.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """
 Test description
 ================
diff --git a/Utest/Validation/3test_UO/run_validation_3.py b/Utest/Validation/3test_UO/run_validation_3.py
index 39015fc9391c1dd5ce2acac8a82c5f3cd8c17118..3bc2b7c4b59f99c2a6b1565c9f6c4879486c02cb 100644
--- a/Utest/Validation/3test_UO/run_validation_3.py
+++ b/Utest/Validation/3test_UO/run_validation_3.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """
 Test description
 ================
diff --git a/Utest/Validation/6test_KO/run_validation_6.py b/Utest/Validation/6test_KO/run_validation_6.py
index 8c391a90ca69a47b1288aed5de9584f359a4d580..17e11e2b2748d6558c5bf03fb0245ade50566bbd 100644
--- a/Utest/Validation/6test_KO/run_validation_6.py
+++ b/Utest/Validation/6test_KO/run_validation_6.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """
 Test description
 ================
diff --git a/Utest/juelich_tests/test_1/runtest_juelich_1.py b/Utest/juelich_tests/test_1/runtest_juelich_1.py
index 26e54ba4474d923afd74798669bb2252013e0bed..5a7edd511ac9164de5b55b4ceb5342c2ae5e0189 100644
--- a/Utest/juelich_tests/test_1/runtest_juelich_1.py
+++ b/Utest/juelich_tests/test_1/runtest_juelich_1.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 import os
 import sys
 utestdir = os.path.abspath(os.path.dirname(os.path.dirname(sys.path[0])))
diff --git a/Utest/juelich_tests/test_12/runtest_juelich_12.py b/Utest/juelich_tests/test_12/runtest_juelich_12.py
index 919701d64b79a56756d8d2c7712e1bdd028e98cc..9045651562a6dc5e1e830ec6a7be2a201f11e848 100755
--- a/Utest/juelich_tests/test_12/runtest_juelich_12.py
+++ b/Utest/juelich_tests/test_12/runtest_juelich_12.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 import os
 import sys
 utestdir = os.path.abspath(os.path.dirname(os.path.dirname(sys.path[0])))
diff --git a/Utest/juelich_tests/test_14/runtest_juelich_14.py b/Utest/juelich_tests/test_14/runtest_juelich_14.py
index d8e6baddc84de75cc22f27ca9711a9a41d0f9e65..d524b0e9dd2cd8e4945045c9dbf2f9050d3f0cc3 100755
--- a/Utest/juelich_tests/test_14/runtest_juelich_14.py
+++ b/Utest/juelich_tests/test_14/runtest_juelich_14.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 import os
 import sys
 utestdir = os.path.abspath(os.path.dirname(os.path.dirname(sys.path[0])))
diff --git a/Utest/juelich_tests/test_15/runtest_juelich_15.py b/Utest/juelich_tests/test_15/runtest_juelich_15.py
index 5e1a6cbaff6a0d238ae2a09ce24e39a9de203ac4..3998c86243d8029556c363ca72316acfc1bc7d91 100755
--- a/Utest/juelich_tests/test_15/runtest_juelich_15.py
+++ b/Utest/juelich_tests/test_15/runtest_juelich_15.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 """
 Test description
diff --git a/Utest/juelich_tests/test_2/runtest_juelich_2.py b/Utest/juelich_tests/test_2/runtest_juelich_2.py
index 5c9d02c11e09ed7cc48c468fa1ca2fd356bbf20a..7ec2f2b0674fe27831ed8b60cf9aa3c8b0d2ce08 100755
--- a/Utest/juelich_tests/test_2/runtest_juelich_2.py
+++ b/Utest/juelich_tests/test_2/runtest_juelich_2.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 import os
 import sys
 utestdir = os.path.abspath(os.path.dirname(os.path.dirname(sys.path[0])))
diff --git a/Utest/juelich_tests/test_3/runtest_juelich_3.py b/Utest/juelich_tests/test_3/runtest_juelich_3.py
index eabd99e1ea5545906eb5e1837a31e4592d35abd2..a6c0727b8231375f5548a6fabf5f312b5a1c3d0a 100755
--- a/Utest/juelich_tests/test_3/runtest_juelich_3.py
+++ b/Utest/juelich_tests/test_3/runtest_juelich_3.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 import os
 import sys
 utestdir = os.path.abspath(os.path.dirname(os.path.dirname(sys.path[0])))
diff --git a/Utest/juelich_tests/test_4/runtest_juelich_4.py b/Utest/juelich_tests/test_4/runtest_juelich_4.py
index c575c900153c06131b5aedbb952859866bfab788..fade0b33588384de78323d7c4839a4890ae314d7 100755
--- a/Utest/juelich_tests/test_4/runtest_juelich_4.py
+++ b/Utest/juelich_tests/test_4/runtest_juelich_4.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 import os
 import sys
 utestdir = os.path.abspath(os.path.dirname(os.path.dirname(sys.path[0])))
diff --git a/Utest/juelich_tests/test_5/runtest_juelich_5.py b/Utest/juelich_tests/test_5/runtest_juelich_5.py
index f086875955aa624c6fe82d26054e26ebe8df5ac4..7ee4e30fc711b41663bdf9c92942450a39939abc 100755
--- a/Utest/juelich_tests/test_5/runtest_juelich_5.py
+++ b/Utest/juelich_tests/test_5/runtest_juelich_5.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 import os
 import sys
 utestdir = os.path.abspath(os.path.dirname(os.path.dirname(sys.path[0])))
diff --git a/Utest/juelich_tests/test_6/runtest_juelich_6.py b/Utest/juelich_tests/test_6/runtest_juelich_6.py
index e4742d63134d13eabe2560468ba4d90ad76110de..f572629916898776ea7f34b5b59713bd2cfec23e 100755
--- a/Utest/juelich_tests/test_6/runtest_juelich_6.py
+++ b/Utest/juelich_tests/test_6/runtest_juelich_6.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 import os
 import sys
 utestdir = os.path.abspath(os.path.dirname(os.path.dirname(sys.path[0])))
diff --git a/Utest/juelich_tests/test_7.1/runtest_juelich_7_1.py b/Utest/juelich_tests/test_7.1/runtest_juelich_7_1.py
index 5e3fc3b24d163af578ac2e34d21cb2ef6dfa073d..323b2074831197f2cc0665352ee6dc18ffc3f1fd 100755
--- a/Utest/juelich_tests/test_7.1/runtest_juelich_7_1.py
+++ b/Utest/juelich_tests/test_7.1/runtest_juelich_7_1.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 """
 - 100 peds distributed in a room with 2 exits:
diff --git a/Utest/juelich_tests/test_7.2/runtest_juelich_7_2.py b/Utest/juelich_tests/test_7.2/runtest_juelich_7_2.py
index 140c3000035e2fabe353468b616b8464d73791c9..5fc0c7694d16d064667b892fa124faf73dea668b 100755
--- a/Utest/juelich_tests/test_7.2/runtest_juelich_7_2.py
+++ b/Utest/juelich_tests/test_7.2/runtest_juelich_7_2.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 """
 - 100 peds distributed in a room with 2 exits:
diff --git a/Utest/juelich_tests/test_7/r_untest_juelich_7.py b/Utest/juelich_tests/test_7/r_untest_juelich_7.py
index 5e6fd811a470af434bf2e1c9dc0432066eb3cf32..20ee69cfdb7042b2d757c9380e3916f5b49aa8a5 100755
--- a/Utest/juelich_tests/test_7/r_untest_juelich_7.py
+++ b/Utest/juelich_tests/test_7/r_untest_juelich_7.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 """
 - 6 peds distributed in a room with 2 exits:
diff --git a/Utest/juelich_tests/test_8/runtest_juelich_8.py b/Utest/juelich_tests/test_8/runtest_juelich_8.py
index c656308febc1fd7b9e5fce8eea2f2ad1b0867f27..0dad198067b7967a51bd5e77c7b123850edb8f2f 100755
--- a/Utest/juelich_tests/test_8/runtest_juelich_8.py
+++ b/Utest/juelich_tests/test_8/runtest_juelich_8.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 import os
 import sys
 utestdir = os.path.abspath(os.path.dirname(os.path.dirname(sys.path[0])))
diff --git a/Utest/juelich_tests/test_9/runtest_juelich_9.py b/Utest/juelich_tests/test_9/runtest_juelich_9.py
index c8227d8c609a12cfae8e1ba4365833f8e16183bb..bdfbc3ca4921806fb9fd9080b45ab38210593257 100644
--- a/Utest/juelich_tests/test_9/runtest_juelich_9.py
+++ b/Utest/juelich_tests/test_9/runtest_juelich_9.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """
 Test description
 ================
diff --git a/Utest/makeini.py b/Utest/makeini.py
index f7c7fb903b59a5ce103dcde7f8d93496941302d3..6857ba4ac64b0a5a5dbd484bd5307ed00be774b0 100644
--- a/Utest/makeini.py
+++ b/Utest/makeini.py
@@ -1,11 +1,11 @@
 
-# help: python makeini.py -h
+# help: python3 makeini.py -h
 import os, sys, glob
 from shutil import copy2, rmtree, move
 import logging, types, argparse
 import errno, time
 from numpy import *
-from itertools import product, izip
+from itertools import product
 try:
     import xml.etree.cElementTree as ET
 except ImportError:
@@ -112,7 +112,7 @@ def get_attribute(node):
     text = ''
     values = []
 
-    for node_attrib in node.attrib.keys():
+    for node_attrib in list(node.attrib.keys()):
         if node_attrib in attributes:
             text = node.attrib[node_attrib]
             if text:
@@ -146,7 +146,7 @@ def get_product(root):
             d = get_tag(node)
             if isinstance(d, list) or isinstance(d, ndarray):
                 # in case some tags have multiple values
-                if not input_tags.has_key(tag) and len(d) > 1:
+                if tag not in input_tags and len(d) > 1:
             # ignore lists with one element (equiv to scalars)
             # if tag in tags:
                     input_tags[tag] = d
@@ -160,7 +160,7 @@ def get_product(root):
         else:
             continue
 
-    result_prod = [dict(izip(input_tags, x)) for x in product(*input_tags.itervalues())]
+    result_prod = [dict(zip(input_tags, x)) for x in product(*iter(input_tags.values()))]
     # print "result", result_prod
     # raw_input()
     return result_prod
@@ -168,7 +168,7 @@ def get_product(root):
 def make_filename(directory, d):
     name = "%s/inifiles/ini"%directory
     traj = "../trajectories/traj" #%directory
-    for key, value in d.iteritems():
+    for key, value in d.items():
         if key == "geometry":
             value = os.path.basename(value)
         # if key == "num_threads":
@@ -193,7 +193,7 @@ def update_attrib_value(root, attr_tag, value):
     # raw_input()
     if attr_tag == "location":  # e.g. location
         for r in root.iter():
-            if r.attrib.has_key(attr_tag):
+            if attr_tag in r.attrib:
                 r.attrib[attr_tag] = str(value)
         return
 
@@ -201,7 +201,7 @@ def update_attrib_value(root, attr_tag, value):
     cor_tag = attr_tag.split("-")[0]
 
     for r in root.iter(cor_tag):
-        if r.attrib.has_key(attr):
+        if attr in r.attrib:
             r.attrib[attr] = str(value)
 # =======================================================
 def make_file(masterfile, tree, result):
@@ -219,7 +219,7 @@ def make_file(masterfile, tree, result):
         if not os.path.isfile(newfile):
             logging.error("make_file: could not create file %s"%newfile)
             sys.exit(FAILURE)
-        for tag, value in item.iteritems():
+        for tag, value in item.items():
             # print "tag: ", tag, "value:", value
             # raw_input()
             if tag in attributes_tags:
diff --git a/Utest/rimea_tests/test_1/runtest_rimea_1.py b/Utest/rimea_tests/test_1/runtest_rimea_1.py
index 01449dbead3c97f565af0c8ecf2ded8b471839f7..1543f110b6ffad5e5c5b41697e9af1fa0fe03da6 100644
--- a/Utest/rimea_tests/test_1/runtest_rimea_1.py
+++ b/Utest/rimea_tests/test_1/runtest_rimea_1.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """
 Test description
 ================
diff --git a/Utest/rimea_tests/test_10/runtest_rimea_10.py b/Utest/rimea_tests/test_10/runtest_rimea_10.py
index cdd85c50b77902effb193b6eac9d98711dcd341f..638ac93b891359722cecdd5787b33fe5bc7aa51a 100644
--- a/Utest/rimea_tests/test_10/runtest_rimea_10.py
+++ b/Utest/rimea_tests/test_10/runtest_rimea_10.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """
 Test description
 ================
diff --git a/Utest/rimea_tests/test_11/runtest_rimea_11.py b/Utest/rimea_tests/test_11/runtest_rimea_11.py
index 8dedc2e880960084c1e7e9afff37cb321c1727ae..2527bb0a8cf65930bf2b83d796ac82f365dc5cee 100644
--- a/Utest/rimea_tests/test_11/runtest_rimea_11.py
+++ b/Utest/rimea_tests/test_11/runtest_rimea_11.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """
 Test description
 ================
diff --git a/Utest/rimea_tests/test_12/runtest_rimea_12.py b/Utest/rimea_tests/test_12/runtest_rimea_12.py
index 9e4d91297e3cf13ae934d7d6fe4e4071c6fb7aff..24b76d01dcf6e2bf8048671d484b380e72eea3aa 100644
--- a/Utest/rimea_tests/test_12/runtest_rimea_12.py
+++ b/Utest/rimea_tests/test_12/runtest_rimea_12.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """
 Test description
 ================
diff --git a/Utest/rimea_tests/test_13/runtest_rimea_13.py b/Utest/rimea_tests/test_13/runtest_rimea_13.py
index e6d57a2370f901186a1d177f9a87848a2d1a028e..33fb51959b37dce892de1792af47847da9370a5c 100644
--- a/Utest/rimea_tests/test_13/runtest_rimea_13.py
+++ b/Utest/rimea_tests/test_13/runtest_rimea_13.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """
 Test description
 ================
diff --git a/Utest/rimea_tests/test_14/runtest_rimea_14.py b/Utest/rimea_tests/test_14/runtest_rimea_14.py
index c2b3541b3280e7a4f56ec025a46043e5922e3c29..ad11f2e988fb92fa0b6513d96a7de8816bb5936d 100644
--- a/Utest/rimea_tests/test_14/runtest_rimea_14.py
+++ b/Utest/rimea_tests/test_14/runtest_rimea_14.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """
 Test description
 ================
diff --git a/Utest/rimea_tests/test_2/runtest_rimea_2.py b/Utest/rimea_tests/test_2/runtest_rimea_2.py
index 912382289719a733f1c920c9152899327180d28b..16f3fcf22de65c649eaf27e1ee85db8454cc6427 100644
--- a/Utest/rimea_tests/test_2/runtest_rimea_2.py
+++ b/Utest/rimea_tests/test_2/runtest_rimea_2.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """
 Test Description
 ================
diff --git a/Utest/rimea_tests/test_3/runtest_rimea_3.py b/Utest/rimea_tests/test_3/runtest_rimea_3.py
index 681214d3dab026f88b72dde57a381f6f97fd0a47..e61d2a66473d3c3ceb1a1b88dfac4a91310302f9 100644
--- a/Utest/rimea_tests/test_3/runtest_rimea_3.py
+++ b/Utest/rimea_tests/test_3/runtest_rimea_3.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """
 Test Description
 ================
diff --git a/Utest/rimea_tests/test_5/runtest_rimea_5.py b/Utest/rimea_tests/test_5/runtest_rimea_5.py
index b2d371ba70c3c77000f310fd9ff47098948188ff..4183ff104c7717dea0ea4e7d76c03386548f5823 100644
--- a/Utest/rimea_tests/test_5/runtest_rimea_5.py
+++ b/Utest/rimea_tests/test_5/runtest_rimea_5.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """
 Test description
 ================
diff --git a/Utest/rimea_tests/test_6/runtest_rimea_6.py b/Utest/rimea_tests/test_6/runtest_rimea_6.py
index 64f75cd6937c505f23ce69cf0da431a6dd3bc5e5..af33eeb8ef07fadf44d0995fc7b54bc54965e261 100644
--- a/Utest/rimea_tests/test_6/runtest_rimea_6.py
+++ b/Utest/rimea_tests/test_6/runtest_rimea_6.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """
 Test description
 ================
diff --git a/Utest/rimea_tests/test_7/runtest_rimea_7.py b/Utest/rimea_tests/test_7/runtest_rimea_7.py
index 86e04cf56e0ec6966ff040a45a08be93dbf8956d..b7b7ca278d20623a9e492b540fc6279520b1d315 100644
--- a/Utest/rimea_tests/test_7/runtest_rimea_7.py
+++ b/Utest/rimea_tests/test_7/runtest_rimea_7.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """
 Test description
 ================
diff --git a/Utest/rimea_tests/test_8/runtest_rimea_8.py b/Utest/rimea_tests/test_8/runtest_rimea_8.py
index d9a4c2632d684c21d7df31c03f70912e86b65171..95de81b085ace395bdf66a4ff202a51be0b64871 100755
--- a/Utest/rimea_tests/test_8/runtest_rimea_8.py
+++ b/Utest/rimea_tests/test_8/runtest_rimea_8.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """
 Test description
 ================
diff --git a/Utest/rimea_tests/test_9/runtest_rimea_9.py b/Utest/rimea_tests/test_9/runtest_rimea_9.py
index 3dcaf6cd3dbbbd6276a4fd739c4445c96bcb805e..1f60fb5a8135597adc56723f48a0c52d270d60ab 100644
--- a/Utest/rimea_tests/test_9/runtest_rimea_9.py
+++ b/Utest/rimea_tests/test_9/runtest_rimea_9.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """
 Test description
 ================
diff --git a/cmake_modules/CodeCoverage.cmake b/cmake_modules/CodeCoverage.cmake
index aaf3fa42eba8f42656418e392d38f30a8bee888b..16c7e6f6affb6433e5674628901c912750ab36b3 100644
--- a/cmake_modules/CodeCoverage.cmake
+++ b/cmake_modules/CodeCoverage.cmake
@@ -166,7 +166,7 @@ ENDFUNCTION() # SETUP_TARGET_FOR_COVERAGE
 FUNCTION(SETUP_TARGET_FOR_COVERAGE_COBERTURA _targetname _testrunner _outputname)
 
 	IF(NOT PYTHON_EXECUTABLE)
-		MESSAGE(FATAL_ERROR "Python not found! Aborting...")
+		MESSAGE(FATAL_ERROR "Python 3 not found! Aborting...")
 	ENDIF() # NOT PYTHON_EXECUTABLE
 
 	IF(NOT GCOVR_PATH)
diff --git a/inputfiles/Bottleneck/makeBotlenecks.py b/inputfiles/Bottleneck/makeBotlenecks.py
index 430a969062c5ae152dbdaf9ec015fca8ec13b62b..799a971366f7810f355696cca9c77f9b8f4e1c90 100644
--- a/inputfiles/Bottleneck/makeBotlenecks.py
+++ b/inputfiles/Bottleneck/makeBotlenecks.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 import re
 
 UP = 103
diff --git a/inputfiles/Bottleneck/makeBottleneckInifile.py b/inputfiles/Bottleneck/makeBottleneckInifile.py
index 8bd7a86cf89aecd4e9b462872495f176dea8d525..52742bb49d583e6ab5487e90f3298149d84a1b2c 100644
--- a/inputfiles/Bottleneck/makeBottleneckInifile.py
+++ b/inputfiles/Bottleneck/makeBottleneckInifile.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 # make some new ini-files based on the file <ini-Bottleneck.xml>
 # so first make changes in <ini-Bottleneck.xml> and then spread them with this script to the  world         
 
diff --git a/inputfiles/Bottleneck/run_flow.py b/inputfiles/Bottleneck/run_flow.py
index 3200624f3b6246059b73c7dbf591ee0d4bc8e175..b94ac7db193c57af836c539727a447c4aedb7546 100755
--- a/inputfiles/Bottleneck/run_flow.py
+++ b/inputfiles/Bottleneck/run_flow.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 import numpy as np
 from xml.dom import minidom
 import os, argparse, logging, time
@@ -100,7 +100,7 @@ if __name__ == "__main__":
 	widths = [0.8, 0.9, 1.0, 1.1, 1.2, 1.4, 1.6, 1.8, 2.0, 2.3, 2.5]
 	flows = []
 	if MAKE_INI:
-		sh("python makeBottleneckInifile.py")
+		sh("python3 makeBottleneckInifile.py")
 
 	for w in widths:
 	#------------------------------------------------------------------------------	
diff --git a/scripts/plot_neighbors.py b/scripts/plot_neighbors.py
index 08e75761c42d0864e80e8b78874252690f9a1922..0bcff1c8a2dd019598eb34ecfa634c072fe0a3b2 100644
--- a/scripts/plot_neighbors.py
+++ b/scripts/plot_neighbors.py
@@ -8,11 +8,11 @@ import os, time
 from pylab import Rectangle
 
 if len(argv)<=2:
-    print "usage: %s, filename geometryfile"%argv[0]
+    print("usage: %s, filename geometryfile"%argv[0])
     exit()
 
 
-from itertools import product, izip
+from itertools import product
 try:
     import xml.etree.cElementTree as ET
 except ImportError:
@@ -138,7 +138,7 @@ def plotFrame(i, t, data, geometry):
     plt.title("t=%.3f"%t)
     fig.savefig("figs_bot/%.4d.png"%i)
     plt.clf()
-    print "---> figs_bot/%.4d.png"%i 
+    print("---> figs_bot/%.4d.png"%i) 
 
 
 if __name__ == "__main__":
@@ -157,7 +157,7 @@ if __name__ == "__main__":
             i += 1
     if Movie:
         cmd = "\"mf://figs_bot/*.png\" -mf w=800:h=600:fps=25:type=png -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o output.avi"
-        print "Mencoder ---- "
+        print("Mencoder ---- ")
         os.system("mencoder %s" %cmd)
         MPlayer= "mplayer output.avi"
         os.system("%s" %MPlayer)
diff --git a/scripts/vizUnity_geometry.py b/scripts/vizUnity_geometry.py
index 51d9d7cc48eedae4bea800f9d2e06aceee2f1799..e9a78df6275a8a2bfb594013e0b948d3fa03faec 100644
--- a/scripts/vizUnity_geometry.py
+++ b/scripts/vizUnity_geometry.py
@@ -1,4 +1,4 @@
-from itertools import product, izip
+from itertools import product
 try:
     import xml.etree.cElementTree as ET
 except ImportError:
@@ -16,10 +16,10 @@ logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s -
 g = open("geometry.txt", "w")
 
 def usage():
-    print "usage: python %s geometry_file trajectory_file"%sys.argv[0]
-    print "This will create two files:\
-               \n \t- Trajectories ---> b090_combined.txt \n \t- and geometry ---> geometry.txt"
-    print "mv geometry.txt b090_combined.txt to the location where SumoVizUnity leaves"
+    print("usage: python3 %s geometry_file trajectory_file"%sys.argv[0])
+    print("This will create two files:\
+               \n \t- Trajectories ---> b090_combined.txt \n \t- and geometry ---> geometry.txt")
+    print("mv geometry.txt b090_combined.txt to the location where SumoVizUnity leaves")
 
 
 def parse_trajectories(filename):
@@ -70,11 +70,11 @@ def get_polygon(poly):
     return X, Y
 
 def write_polygon(X, Y, Type, name, height):
-    print >>g, "Polygon",
+    print("Polygon", end=' ', file=g)
     for (x, y) in zip(X, Y):
-        print >>g, "%.1f %.1f"%(float(x), float(y)),
+        print("%.1f %.1f"%(float(x), float(y)), end=' ', file=g)
 
-    print >>g, "%s %s %.2f"%(name, Type, height)
+    print("%s %s %.2f"%(name, Type, height), file=g)
 
 def setMinMax(X, Y, minX, maxX, minY, maxY):
 
@@ -123,8 +123,8 @@ def parse_geometry(filename):
     # some trees
     dx = 5
     dy = 5
-    print >>g, "Polygon %.1f %.1f t1 tree 1.0"%(minX-dx, minY-dy)
-    print >>g, "Polygon %.1f %.1f t3 tree 1.0"%(maxX+dx, maxY+dy)
+    print("Polygon %.1f %.1f t1 tree 1.0"%(minX-dx, minY-dy), file=g)
+    print("Polygon %.1f %.1f t3 tree 1.0"%(maxX+dx, maxY+dy), file=g)
 
 if __name__ == "__main__":
     if len(sys.argv) <= 2: