diff --git a/elements/package-installs/README.rst b/elements/package-installs/README.rst
index 8d1027362..9b453c7c0 100644
--- a/elements/package-installs/README.rst
+++ b/elements/package-installs/README.rst
@@ -26,6 +26,10 @@ example ``package-installs.yaml``
     not-arch: ppc64, ppc64le
   lshw:
     arch: ppc64, ppc64le
+  python-dev:
+    dib_python_version: 2
+  python3-dev:
+    dib_python_version: 3
 
 example package-installs.json
 
@@ -46,6 +50,7 @@ the following default values::
     uninstall: False
     installtype: * (Install package for all installtypes)
     arch: * (Install package for all architectures)
+    dib_python_version: (2 or 3 depending on DIB_PYTHON_VERSION, see dib-python)
 
 Setting the installtype property causes the package only to be installed if
 the specified installtype would be used for the element. See the
diff --git a/elements/package-installs/bin/package-installs-squash b/elements/package-installs/bin/package-installs-squash
index 49cc76484..eafdd9f42 100755
--- a/elements/package-installs/bin/package-installs-squash
+++ b/elements/package-installs/bin/package-installs-squash
@@ -75,8 +75,12 @@ def collect_data(data, filename, element_name):
                              installtype == elem_installtype)
         valid_arch = _valid_for_arch(pkg_name, params.get('arch', None),
                                      params.get('not-arch', None))
+        dib_py_version = str(params.get('dib_python_version', ''))
+        dib_py_version_env = os.environ.get('DIB_PYTHON_VERSION', '')
+        valid_dib_python_version = (dib_py_version == '' or
+                                    dib_py_version == dib_py_version_env)
 
-        if valid_installtype and valid_arch:
+        if valid_installtype and valid_arch and valid_dib_python_version:
             data[phase][install].append((pkg_name, element_name))
 
     return data