diff --git a/CMakeLists.txt b/CMakeLists.txt
index ff84517ee78a594182893f7d5cd92023ecfcf963..f5559e33f94c56ac9122b267e2238b9fdcebe152 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -33,10 +33,12 @@ endif()
 # Find system dependencies
 Include(FetchContent)
 
+set(FMT_VERSION 10.2.1)
+message(STATUS "Retrieving fmt ${FMT_VERSION} from git")
 FetchContent_Declare(
     fmt
     GIT_REPOSITORY https://github.com/fmtlib/fmt.git
-    GIT_TAG        10.2.1 # or a later release
+    GIT_TAG        ${FMT_VERSION} # or a later release
 )
 
 set(FMT_SYSTEM_HEADERS ON)
@@ -79,13 +81,13 @@ endif()
 # PYTHON BINDING
 if (PYBIND)
     include(PybindModuleCreation)
-    #  retrieves pybind and python pkg and link them to _aidge_core
-    generate_python_binding(${project} ${module_name})
+    # retrieves pybind and python pkg and link them to _aidge_core
+    generate_python_binding()
 
     # Handles Python + pybind11 headers dependencies
     target_link_libraries(${module_name}
         PRIVATE
-            ${Python_LIBRARIES}
+            Python::Module
         PUBLIC
             pybind11::pybind11
         )
diff --git a/cmake/PybindModuleCreation.cmake b/cmake/PybindModuleCreation.cmake
index eb1bd0342842cc843415c54b7b59875dce08015a..9ed3fcec4b27712ac441ef48cab130bb3364d75c 100644
--- a/cmake/PybindModuleCreation.cmake
+++ b/cmake/PybindModuleCreation.cmake
@@ -1,25 +1,33 @@
-function(generate_python_binding name target_to_bind)
+macro(generate_python_binding )
     add_definitions(-DPYBIND)
     Include(FetchContent)
 
+    # Use the New FindPython mode, recommanded. Requires CMake 3.15+
+    find_package(Python 3.7.0
+                    COMPONENTS Interpreter Development.Module 
+                    REQUIRED)
+    set(PYBIND11_FINDPYTHON ON)
+    set(PYBIND_VERSION v2.10.4)
+    message(STATUS "Retrieving pybind ${PYBIND_VERSION} from git")
     FetchContent_Declare(
     PyBind11
     GIT_REPOSITORY https://github.com/pybind/pybind11.git
-    GIT_TAG        v2.10.4 # or a later release
+    GIT_TAG        ${PYBIND_VERSION} # or a later release
     )
-
-    # Use the New FindPython mode, recommanded. Requires CMake 3.15+
-    find_package(Python 3.7 
-                    COMPONENTS Interpreter Development.Module 
-                    REQUIRED)
     FetchContent_MakeAvailable(PyBind11)
-
-    message(STATUS "Creating binding for module ${name}")
+    
+    message(STATUS "Creating binding for module ${project}")
     file(GLOB_RECURSE pybind_src_files "python_binding/*.cpp")
 
-    pybind11_add_module(${name} MODULE ${pybind_src_files} "NO_EXTRAS") # NO EXTRA recquired for pip install
-    target_include_directories(${name} PUBLIC "python_binding" )
-    target_link_libraries(${name} PUBLIC ${target_to_bind})
-    target_include_directories(${target_to_bind} PRIVATE ${Python_INCLUDE_DIRECTORIES})
-    target_link_directories(${target_to_bind} PRIVATE ${Python_LIBRARY_DIRS})
-endfunction()
+    pybind11_add_module(${project} MODULE ${pybind_src_files} "NO_EXTRAS") # NO EXTRA required for pip install
+    target_include_directories(${project} PUBLIC "python_binding" ${pybind11_INCLUDE_DIRECTORIES})
+    target_link_libraries(${project} PUBLIC ${module_name})
+endmacro()
+
+
+ # cmake_minimum_required(VERSION 3.18...3.26)
+ # project(test)
+ # find_package(Python REQUIRED COMPONENTS Interpreter Development.Module)
+ # set(PYBIND11_FINDPYTHON ON)
+ # find_package(pybind11 CONFIG REQUIRED)
+ 
diff --git a/pyproject.toml b/pyproject.toml
index 87aef234c3bfc4b1c03cb2a240697d0a515d2e68..dfa8d012be10c935e32dd9ff9b9d805ecb8a9b48 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,7 +1,9 @@
 [project]
 name = "aidge_core"
 description="Core alogrithms for operators and graph of the AIDGE framework"
-dependencies = ["numpy>=1.21.6"]
+dependencies = [
+    "numpy>=1.21.6",
+]
 requires-python = ">= 3.7"
 readme = "README.md"
 license = { file = "LICENSE" }
@@ -9,13 +11,14 @@ classifiers = [
     "Development Status :: 2 - Pre-Alpha",
     "Programming Language :: Python :: 3"
     ]
-dynamic = ["version"] # defined in tool.setuptools_scm
+# dynamic = ["version"] # defined in tool.setuptools_scm
+version="1"
 
 [build-system]
 requires = [
     "setuptools>=64",
     "setuptools_scm[toml]==7.1.0",
-    "cmake",
+    "cmake>=3.29",
     "toml"
 ]
 build-backend = "setuptools.build_meta"
@@ -29,8 +32,8 @@ include = ["aidge_core*"]  # package names should match these glob patterns (["*
 exclude = ["aidge_core.unit_tests*"]  # exclude packages matching these glob patterns (empty by default)
 namespaces = false  # to disable scanning PEP 420 namespaces (true by default)
 # SETUPTOOLS_SCM
-[tool.setuptools_scm]
-write_to = "aidge_core/_version.py"
+# [tool.setuptools_scm]
+# write_to = "aidge_core/_version.py"
 
 #####################################################
 # CIBUILDWHEEL
diff --git a/setup.py b/setup.py
index 09f7696735a8c6d5dd985b0258652ec390c518b8..0be3bb8f8ae199449f43e50b3b47ff41dcefc9a0 100644
--- a/setup.py
+++ b/setup.py
@@ -43,6 +43,18 @@ class CMakeBuild(build_ext):
 
         os.chdir(str(build_temp))
 
+        # Impose to use the executable of the python                                                                                                                                                  
+        # used to launch setup.py to setup PythonInterp                                                                                                                                                   
+        python_executable = sys.executable                                                                                                                                                                
+        python_include_dirs = sysconfig.get_path('include')                                                                                                                                               
+        python_library = sysconfig.get_config_var('LIBDIR')                                                                                                                                               
+        python_prefix = sys.exec_prefix                                                                                                                                                                   
+        print(f"python\texecutable\t{python_executable}")                                                                                                                                                   
+        print(f"\t\t\tinclude\tdirs {python_include_dirs}")                                                                                                                                               
+        print(f"-DPYTHON_INCLUDE_DIRS={sysconfig.get_config_var('INCLUDEPY')}") # this might need to be the subdir
+        print(f"\t\t\tlibrary\t{python_library}")                                                                                                                                                         
+        print(f"-DPYTHON_LIBRARIES={sysconfig.get_config_var('LIBDEST')}")
+        print(f"\t\t\tprefix\t{python_prefix}")
         compile_type = "Debug"
         install_path = (
             os.path.join(sys.prefix, "lib", "libAidge")
@@ -53,6 +65,9 @@ class CMakeBuild(build_ext):
             [
                 "cmake",
                 str(cwd),
+                f"-DPYTHON_EXECUTABLE={sys.executable}",
+                f"-DPYTHON_INCLUDE_DIRS={sysconfig.get_config_var('INCLUDEPY')}",
+                f"-DPYTHON_LIBRARIES={sysconfig.get_config_var('LIBDEST')}",
                 "-DTEST=OFF",
                 f"-DCMAKE_INSTALL_PREFIX:PATH={install_path}",
                 f"-DCMAKE_BUILD_TYPE={compile_type}",