distutils.version is deprecated since python 3.8
Since python 3.8, using distutils Version is deprecated:
DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead
I propose use "packaging" module instead, as recommended in the warning. I also propose to remove the "requires" keyword in setup.py, which is deprecated too (https://setuptools.pypa.io/en/latest/userguide/declarative_config.html#metadata), to only use install_requires.
diff --git a/setup.py b/setup.py
index c6c452a..95a6d73 100644
--- a/setup.py
+++ b/setup.py
@@ -378,15 +378,11 @@ def setup_args():
python_requires = ">=3.6"
- requires = [
- "boost_python (>=1.33)",
- "numpy (>=1.13.3)",
- "six (>=1.10)",
- ]
-
install_requires = [
+ "boost_python (>=1.33)",
"numpy (>=1.13.3)",
"six (>=1.10)",
+ "packaging",
]
setup_requires = []
diff --git a/tango/gevent.py b/tango/gevent.py
index 8582a96..8ccc6da 100644
--- a/tango/gevent.py
+++ b/tango/gevent.py
@@ -14,6 +14,7 @@
from __future__ import absolute_import
from functools import partial
+from packaging.version import Version
from ._tango import GreenMode
from .device_proxy import get_device_proxy
@@ -31,9 +32,7 @@ def check_requirements():
"green mode. Consider using the futures green mode "
"instead")
- import distutils.version
- gevent_version = ".".join(map(str, gevent.version_info[:3]))
- if distutils.version.StrictVersion(gevent_version) < "1.0":
+ if Version(gevent.__version__) < Version("1.0"):
raise ImportError("You need gevent >= 1.0. You are using %s. "
"Consider using the futures green mode instead"
% gevent_version)