diff --git a/pyproject.toml b/pyproject.toml
index 68345be2dfa069a838a63baec39c584a34c9cdde..b6e0be7c6b54a4b4b3afd739493924a48a5a98de 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [build-system]
 requires = [
-    "setuptools>=45",
+    "setuptools>=62.6",
     "setuptools_scm[toml]>=6.2",
     "wheel"
 ]
diff --git a/requirements.txt b/requirements.txt
index 198420c501fa4141aa9ea95e436929b88744f586..2ef853cd1156c1aece86c1f89b885871b4e1d209 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,9 @@
-numpy >= 1.19.5 # BSD
-stestr>=3.0.0 # Apache-2.0
-testscenarios>=0.5.0 # Apache-2.0/BSD
-testtools>=2.4.0 # MIT
+importlib-metadata>=0.12; python_version<"3.8"
+pip >= 1.5
+pytango >= 9.4.0
+numpy >= 1.19.3; python_version >"3.9" and python_version <"3.10" # BSD
+numpy >= 1.21.6; python_version >"3.10" and python_version <"3.11" # BSD
+numpy >= 1.23.2; python_version >"3.11" and python_version <"3.12" # BSD
+stestr >= 3.0.0 # Apache-2.0
+testscenarios >= 0.5.0 # Apache-2.0/BSD
+testtools >= 2.4.0 # MIT
diff --git a/setup.cfg b/setup.cfg
index edd47152b0578893e2300197ff0e8ac0a57fb1d5..a56b8243081daf5671b3fcb15cfe8595f7f4756c 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -29,9 +29,7 @@ classifiers =
 include_package_data = true
 packages = find:
 python_requires = >=3.7
-install_requires =
-    importlib-metadata>=0.12;python_version<"3.8"
-    pip >= 1.5
+install_requires = file: requirements.txt
 
 [flake8]
 max-line-length = 88
diff --git a/tox.ini b/tox.ini
index 621d91400e6e930470cbfd07d577ff1bde78c17f..f8a25c0ed5984b2ac5ad742f476643a8c1a9317f 100644
--- a/tox.ini
+++ b/tox.ini
@@ -14,10 +14,6 @@ setenv =
 deps =
     -r{toxinidir}/requirements.txt
     -r{toxinidir}/tests/requirements.txt
-commands_pre =
-    # required until https://gitlab.com/tango-controls/pytango/-/issues/468 is resolved
-    pip install 'numpy>=1.19.5'
-    pip install --no-cache 'PyTango>=9.3.6,<9.4.0'
 commands =
     {envpython} --version
     {envpython} -m pytest {posargs}