diff --git a/scripts/site/sitecustomize.py b/scripts/site/sitecustomize.py
index e199df651339169bf190b9350763b74773498212..30aa6cd0ce8560a2a885ee30bccc8e27df59c701 100644
--- a/scripts/site/sitecustomize.py
+++ b/scripts/site/sitecustomize.py
@@ -7,15 +7,25 @@
 import sys
 import os
 
-exe_dir, exe_file = os.path.split(sys.executable)
-is_python = exe_file.startswith("python")
-
 # Path to Blender shared libraries.
 shared_lib_dirname = "blender.shared" if sys.platform == "win32" else "lib"
-if is_python:
-    shared_lib_dir = os.path.abspath(os.path.join(exe_dir, "..", "..", "..", shared_lib_dirname))
+
+if os.path.basename(__file__) == "bpy_site_customize.py":
+    # Blender as Python Module.
+    is_python = True
+    shared_lib_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", ".."))
+    # On Windows no subdirectory is used.
+    if sys.platform != "win32":
+        shared_lib_dir = os.path.join(shared_lib_dir, shared_lib_dirname)
 else:
-    shared_lib_dir = os.path.abspath(os.path.join(exe_dir, shared_lib_dirname))
+    exe_dir, exe_file = os.path.split(sys.executable)
+    is_python = exe_file.startswith("python")
+    if is_python:
+        # Python executable bundled with Blender.
+        shared_lib_dir = os.path.abspath(os.path.join(exe_dir, "..", "..", "..", shared_lib_dirname))
+    else:
+        # Blender executable.
+        shared_lib_dir = os.path.abspath(os.path.join(exe_dir, shared_lib_dirname))
 
 if sys.platform == "win32":
     # Directory for extensions to find DLLs.