diff --git a/meta/recipes-devtools/python/python3_3.5.3.bb b/meta/recipes-devtools/python/python3_3.5.3.bb
index 970ba634450..3ae0db2b8b2 100644
--- a/meta/recipes-devtools/python/python3_3.5.3.bb
+++ b/meta/recipes-devtools/python/python3_3.5.3.bb
@@ -228,21 +228,22 @@ FILES_${PN}-man = "${datadir}/man"
 BBCLASSEXTEND = "nativesdk"
 
 RPROVIDES_${PN} += "${PN}-modules"
-    
+
 # We want bytecode precompiled .py files (.pyc's) by default
 # but the user may set it on their own conf
-            
 INCLUDE_PYCS ?= "1"
 
 python(){
+    import json
 
-    pythondir = d.getVar('THISDIR',True)
+    filename = os.path.join(d.getVar('THISDIR'), 'python3', 'python3-manifest.json')
+    # This python changes the datastore based on the contents of a file, so mark
+    # that dependency.
+    bb.parse.mark_dependency(d, filename)
 
-    # Read JSON manifest
-    import json
-    with open(pythondir+'/python3/python3-manifest.json') as manifest_file:
+    with open(filename) as manifest_file:
         python_manifest=json.load(manifest_file)
-        
+
     include_pycs = d.getVar('INCLUDE_PYCS')
 
     packages = d.getVar('PACKAGES').split()
@@ -282,28 +283,24 @@ python(){
     d.setVar('PACKAGES', ' '.join(packages))
     d.setVar('ALLOW_EMPTY_${PN}-modules', '1')
 }
-do_split_packages[file-checksums] += "${THISDIR}/python/python3-manifest.json:True"
-
-
 
 # Files needed to create a new manifest
 SRC_URI += "file://create_manifest3.py file://get_module_deps3.py file://python3-manifest.json"
 
 do_create_manifest() {
-
-# This task should be run with every new release of Python.
-# We must ensure that PACKAGECONFIG enables everything when creating
-# a new manifest, this is to base our new manifest on a complete
-# native python build, containing all dependencies, otherwise the task
-# wont be able to find the required files.
-# e.g. BerkeleyDB is an optional build dependency so it may or may not
-# be present, we must ensure it is.
-
-cd ${WORKDIR}
-# This needs to be executed by python-native and NOT by HOST's python
-nativepython3 create_manifest3.py
-cp python3-manifest.json.new ${THISDIR}/python3/python3-manifest.json
-}                   
+    # This task should be run with every new release of Python.
+    # We must ensure that PACKAGECONFIG enables everything when creating
+    # a new manifest, this is to base our new manifest on a complete
+    # native python build, containing all dependencies, otherwise the task
+    # wont be able to find the required files.
+    # e.g. BerkeleyDB is an optional build dependency so it may or may not
+    # be present, we must ensure it is.
+
+    cd ${WORKDIR}
+    # This needs to be executed by python-native and NOT by HOST's python
+    nativepython3 create_manifest3.py
+    cp python3-manifest.json.new ${THISDIR}/python3/python3-manifest.json
+}
 
 # bitbake python -c create_manifest
 addtask do_create_manifest
diff --git a/meta/recipes-devtools/python/python_2.7.13.bb b/meta/recipes-devtools/python/python_2.7.13.bb
index dbafb955f90..337c7447bb6 100644
--- a/meta/recipes-devtools/python/python_2.7.13.bb
+++ b/meta/recipes-devtools/python/python_2.7.13.bb
@@ -202,12 +202,14 @@ RPROVIDES_${PN} += "${PN}-modules"
 INCLUDE_PYCS ?= "1"
 
 python(){
+    import json
 
-    pythondir = d.getVar('THISDIR',True)
+    filename = os.path.join(d.getVar('THISDIR'), 'python', 'python2-manifest.json')
+    # This python changes the datastore based on the contents of a file, so mark
+    # that dependency.
+    bb.parse.mark_dependency(d, filename)
 
-    # Read JSON manifest
-    import json
-    with open(pythondir+'/python/python2-manifest.json') as manifest_file:
+    with open(filename) as manifest_file:
         python_manifest=json.load(manifest_file)
 
     include_pycs = d.getVar('INCLUDE_PYCS')
@@ -215,7 +217,6 @@ python(){
     packages = d.getVar('PACKAGES').split()
     pn = d.getVar('PN')
 
-
     newpackages=[]
 
     for key in python_manifest:
@@ -250,25 +251,22 @@ python(){
     d.setVar('ALLOW_EMPTY_${PN}-modules', '1')
 }
 
-do_split_packages[file-checksums] += "${THISDIR}/python/python2-manifest.json:True"
-
 # Files needed to create a new manifest
 SRC_URI += "file://create_manifest2.py file://get_module_deps2.py file://python2-manifest.json"
 
 do_create_manifest() {
-
-# This task should be run with every new release of Python.
-# We must ensure that PACKAGECONFIG enables everything when creating 
-# a new manifest, this is to base our new manifest on a complete
-# native python build, containing all dependencies, otherwise the task
-# wont be able to find the required files.
-# e.g. BerkeleyDB is an optional build dependency so it may or may not
-# be present, we must ensure it is. 
-
-cd ${WORKDIR}
-# This needs to be executed by python-native and NOT by HOST's python
-nativepython create_manifest2.py
-cp python2-manifest.json.new ${THISDIR}/python/python2-manifest.json
+    # This task should be run with every new release of Python.
+    # We must ensure that PACKAGECONFIG enables everything when creating
+    # a new manifest, this is to base our new manifest on a complete
+    # native python build, containing all dependencies, otherwise the task
+    # wont be able to find the required files.
+    # e.g. BerkeleyDB is an optional build dependency so it may or may not
+    # be present, we must ensure it is.
+
+    cd ${WORKDIR}
+    # This needs to be executed by python-native and NOT by HOST's python
+    nativepython create_manifest2.py
+    cp python2-manifest.json.new ${THISDIR}/python/python2-manifest.json
 }
 
 # bitbake python -c create_manifest
