diff --git a/CMakeLists.txt b/CMakeLists.txt
index c8e1a62bcd26997fb34a219e8f971e32e3125b04..229e4ae5e1f0c98c44ec5c8d2a159b7b057abce4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,6 +38,7 @@ endif()
 if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.16)
     option(OGS_USE_UNITY_BUILDS "Enables Unity builds for faster compilation." ON)
 endif()
+option(OGS_DISABLE_POETRY "Disables automatic Python virtual environment handling with poetry." OFF)
 
 # Third-party libraries, names come from Conan package names
 set(OGS_LIBS
diff --git a/scripts/cmake/PythonSetup.cmake b/scripts/cmake/PythonSetup.cmake
index addc006022ba2f7a02423cfef0738eb61fe0e7c8..798a02648f07ae1555a672a11e3424e30f6ec50a 100644
--- a/scripts/cmake/PythonSetup.cmake
+++ b/scripts/cmake/PythonSetup.cmake
@@ -1,4 +1,6 @@
-find_program(POETRY poetry)
+if(NOT OGS_DISABLE_POETRY)
+    find_program(POETRY poetry)
+endif()
 if(POETRY)
     configure_file(${PROJECT_SOURCE_DIR}/scripts/python/poetry.in.toml
         ${PROJECT_BINARY_DIR}/poetry.toml COPYONLY)