diff --git a/parser/parser-cp2k/cp2kparser/scalainterface.py b/parser/parser-cp2k/cp2kparser/scalainterface.py
index 528e1c573da19c2a3b27781ceffecf8e9d4568af..3c9e67c165cba6f285434bbfbf23160ef58587f2 100644
--- a/parser/parser-cp2k/cp2kparser/scalainterface.py
+++ b/parser/parser-cp2k/cp2kparser/scalainterface.py
@@ -2,8 +2,9 @@
 This is the access point to the parser for the scala layer in the
 nomad project.
 """
+from __future__ import absolute_import
 import sys
-import setup_paths
+from . import setup_paths
 from nomadcore.parser_backend import JsonParseEventsWriterBackend
 from cp2kparser import CP2KParser
 
diff --git a/parser/parser-cp2k/cp2kparser/tools/xmlpreparser.py b/parser/parser-cp2k/cp2kparser/tools/xmlpreparser.py
index 06bcbc8202c1655b129b0b3998b2b877d309b543..3f6f02b6d1a8afe956f309d8f65c21e846b822c9 100644
--- a/parser/parser-cp2k/cp2kparser/tools/xmlpreparser.py
+++ b/parser/parser-cp2k/cp2kparser/tools/xmlpreparser.py
@@ -12,6 +12,7 @@ The actual calculation input contents can later be added to this object. Then
 the object can be queried for the results, or the default values defined by the
 cp2k_input.xml.
 """
+from __future__ import print_function
 
 import xml.etree.cElementTree as ET
 import logging
@@ -68,7 +69,7 @@ def recursive_tree_generation(xml_element, for_metainfo=False, name_stack=[], ig
             ]
             name = "/".join(name_stack)
             if "/".join(name_stack) in kept_print_settings:
-                print "KEPT {}".format(name)
+                print("KEPT {}".format(name))
                 ignore = False
             else:
                 return
diff --git a/parser/parser-cp2k/cp2kparser/versions/cp2k262/commonmatcher.py b/parser/parser-cp2k/cp2kparser/versions/cp2k262/commonmatcher.py
index e2e2b145768f5967517fc093fd1ed2b2bb318a85..dece149075226214baae6d2aac9dc118ba45e1c7 100644
--- a/parser/parser-cp2k/cp2kparser/versions/cp2k262/commonmatcher.py
+++ b/parser/parser-cp2k/cp2kparser/versions/cp2k262/commonmatcher.py
@@ -1,3 +1,4 @@
+from __future__ import absolute_import
 import re
 import numpy as np
 import logging
@@ -5,7 +6,7 @@ from nomadcore.simple_parser import SimpleMatcher as SM
 from nomadcore.simple_parser import extractOnCloseTriggers
 from nomadcore.caching_backend import CachingLevel
 from nomadcore.unit_conversion.unit_conversion import convert_unit
-from inputparser import CP2KInputParser
+from .inputparser import CP2KInputParser
 logger = logging.getLogger("nomad")
 
 
diff --git a/parser/parser-cp2k/cp2kparser/versions/cp2k262/geooptparser.py b/parser/parser-cp2k/cp2kparser/versions/cp2k262/geooptparser.py
index f1a9c007bd36da9a411bb8d1d8b93e0eeb13fab9..8a8db07179a2b303c5e530dd04c347d99507d06a 100644
--- a/parser/parser-cp2k/cp2kparser/versions/cp2k262/geooptparser.py
+++ b/parser/parser-cp2k/cp2kparser/versions/cp2k262/geooptparser.py
@@ -1,6 +1,8 @@
+from __future__ import print_function
+from __future__ import absolute_import
 from nomadcore.simple_parser import SimpleMatcher as SM
 from nomadcore.baseclasses import MainHierarchicalParser
-from commonmatcher import CommonMatcher
+from .commonmatcher import CommonMatcher
 import cp2kparser.generic.configurationreading
 import cp2kparser.generic.csvparsing
 from nomadcore.caching_backend import CachingLevel
@@ -303,5 +305,5 @@ class CP2KGeoOptParser(MainHierarchicalParser):
 
     def debug(self):
         def wrapper(parser):
-            print "DEBUG"
+            print("DEBUG")
         return wrapper
diff --git a/parser/parser-cp2k/cp2kparser/versions/cp2k262/mdparser.py b/parser/parser-cp2k/cp2kparser/versions/cp2k262/mdparser.py
index cca527c2ce983e8da71ab8befeaae1545ee99ee4..c87434f03408856dd185f74e8d131466cbef82b2 100644
--- a/parser/parser-cp2k/cp2kparser/versions/cp2k262/mdparser.py
+++ b/parser/parser-cp2k/cp2kparser/versions/cp2k262/mdparser.py
@@ -1,7 +1,8 @@
+from __future__ import absolute_import
 import numpy as np
 from nomadcore.simple_parser import SimpleMatcher as SM
 from nomadcore.baseclasses import MainHierarchicalParser
-from commonmatcher import CommonMatcher
+from .commonmatcher import CommonMatcher
 import cp2kparser.generic.configurationreading
 import cp2kparser.generic.csvparsing
 from nomadcore.caching_backend import CachingLevel
@@ -296,7 +297,7 @@ class CP2KMDParser(MainHierarchicalParser):
             # Energy file
             if self.energy_iterator is not None:
                 if (i_step + 1) % freqs["energies"][0] == 0:
-                    line = self.energy_iterator.next()
+                    line = next(self.energy_iterator)
 
                     time = line[1]
                     kinetic_energy = line[2]
@@ -317,7 +318,7 @@ class CP2KMDParser(MainHierarchicalParser):
             # Cell file
             if self.cell_iterator is not None:
                 if (i_step + 1) % freqs["cell"][0] == 0:
-                    line = self.cell_iterator.next()
+                    line = next(self.cell_iterator)
                     cell = np.reshape(line, (3, 3))
                     self.cache_service["simulation_cell"] = cell
 
diff --git a/parser/parser-cp2k/cp2kparser/versions/cp2k262/singlepointparser.py b/parser/parser-cp2k/cp2kparser/versions/cp2k262/singlepointparser.py
index 0a90533e96a9cba25d9374e66bf45983a2618521..cfd9e7a39ce3cf2d6a7b09fec07a32f080109675 100644
--- a/parser/parser-cp2k/cp2kparser/versions/cp2k262/singlepointparser.py
+++ b/parser/parser-cp2k/cp2kparser/versions/cp2k262/singlepointparser.py
@@ -1,8 +1,9 @@
+from __future__ import absolute_import
 from nomadcore.simple_parser import SimpleMatcher as SM
 from nomadcore.baseclasses import MainHierarchicalParser
-from singlepointforceparser import CP2KSinglePointForceParser
+from .singlepointforceparser import CP2KSinglePointForceParser
 from nomadcore.caching_backend import CachingLevel
-from commonmatcher import CommonMatcher
+from .commonmatcher import CommonMatcher
 import logging
 logger = logging.getLogger("nomad")