diff --git a/src/CSnakes.Runtime.Tests/CSnakes.Runtime.Tests.csproj b/src/CSnakes.Runtime.Tests/CSnakes.Runtime.Tests.csproj
index e846b385..81dfbfce 100644
--- a/src/CSnakes.Runtime.Tests/CSnakes.Runtime.Tests.csproj
+++ b/src/CSnakes.Runtime.Tests/CSnakes.Runtime.Tests.csproj
@@ -32,8 +32,4 @@
     <Using Include="Xunit" />
   </ItemGroup>
 
-  <ItemGroup>
-    <Folder Include="Locators\" />
-  </ItemGroup>
-
 </Project>
diff --git a/src/CSnakes.Runtime.Tests/RuntimeTestBase.cs b/src/CSnakes.Runtime.Tests/RuntimeTestBase.cs
index ad64f579..5d33a236 100644
--- a/src/CSnakes.Runtime.Tests/RuntimeTestBase.cs
+++ b/src/CSnakes.Runtime.Tests/RuntimeTestBase.cs
@@ -10,7 +10,7 @@ public class RuntimeTestBase : IDisposable
 
     public RuntimeTestBase()
     {
-        string pythonVersionWindows = "3.12.4";
+        string pythonVersionWindows = Environment.GetEnvironmentVariable("PYTHON_VERSION") ?? "3.12.4";
         string pythonVersionMacOS = Environment.GetEnvironmentVariable("PYTHON_VERSION") ?? "3.12";
         string pythonVersionLinux = Environment.GetEnvironmentVariable("PYTHON_VERSION") ?? "3.12";
 
diff --git a/src/CSnakes.Runtime/IServiceCollectionExtensions.cs b/src/CSnakes.Runtime/IServiceCollectionExtensions.cs
index 0cc121d7..e69ab4a7 100644
--- a/src/CSnakes.Runtime/IServiceCollectionExtensions.cs
+++ b/src/CSnakes.Runtime/IServiceCollectionExtensions.cs
@@ -56,7 +56,16 @@ public static Version ParsePythonVersion(string version)
     /// <returns>The modified <see cref="IPythonEnvironmentBuilder"/>.</returns>
     public static IPythonEnvironmentBuilder FromNuGet(this IPythonEnvironmentBuilder builder, string version)
     {
-        builder.Services.AddSingleton<PythonLocator>(new NuGetLocator(ParsePythonVersion(version)));
+        // See https://github.com/tonybaloney/CSnakes/issues/154#issuecomment-2352116849
+        version = version.Replace("alpha.", "a").Replace("beta.", "b").Replace("rc.", "rc");
+
+        // If a supplied version only consists of 2 tokens - e.g., 1.10 or 2.14 - then append an extra token
+        if (version.Count(c => c == '.') < 2)
+        {
+            version = $"{version}.0";
+        }
+
+        builder.Services.AddSingleton<PythonLocator>(new NuGetLocator(version, ParsePythonVersion(version)));
         return builder;
     }
 
diff --git a/src/CSnakes.Runtime/Locators/EnvironmentVariableLocator.cs b/src/CSnakes.Runtime/Locators/EnvironmentVariableLocator.cs
index b47832b9..5b7c6dcb 100644
--- a/src/CSnakes.Runtime/Locators/EnvironmentVariableLocator.cs
+++ b/src/CSnakes.Runtime/Locators/EnvironmentVariableLocator.cs
@@ -1,4 +1,5 @@
 namespace CSnakes.Runtime.Locators;
+
 internal class EnvironmentVariableLocator(string variable, Version version) : PythonLocator(version)
 {
     public override PythonLocationMetadata LocatePython()
@@ -11,4 +12,4 @@ public override PythonLocationMetadata LocatePython()
 
         return LocatePythonInternal(envValue);
     }
-}
\ No newline at end of file
+}
diff --git a/src/CSnakes.Runtime/Locators/NuGetLocator.cs b/src/CSnakes.Runtime/Locators/NuGetLocator.cs
index b178c50a..f7b9c32e 100644
--- a/src/CSnakes.Runtime/Locators/NuGetLocator.cs
+++ b/src/CSnakes.Runtime/Locators/NuGetLocator.cs
@@ -1,7 +1,8 @@
 using System.Runtime.InteropServices;
 
 namespace CSnakes.Runtime.Locators;
-internal class NuGetLocator(Version version) : PythonLocator(version)
+
+internal class NuGetLocator(string nugetVersion, Version version) : PythonLocator(version)
 {
     public override PythonLocationMetadata LocatePython()
     {
@@ -13,7 +14,7 @@ public override PythonLocationMetadata LocatePython()
         }
         string? globalNugetPackagesPath = string.IsNullOrEmpty(nugetPackagesOverride) ? Path.Combine(userProfile, ".nuget", "packages") : nugetPackagesOverride;
         // TODO : Load optional path from nuget settings. https://learn.microsoft.com/en-us/nuget/consume-packages/managing-the-global-packages-and-cache-folders
-        string nugetPath = Path.Combine(globalNugetPackagesPath!, "python", $"{Version.Major}.{Version.Minor}.{Version.Build}", "tools");
+        string nugetPath = Path.Combine(globalNugetPackagesPath!, "python", nugetVersion, "tools");
         return LocatePythonInternal(nugetPath);
     }
 
diff --git a/src/Integration.Tests/IntegrationTestBase.cs b/src/Integration.Tests/IntegrationTestBase.cs
index d0a5dc0c..a59deb14 100644
--- a/src/Integration.Tests/IntegrationTestBase.cs
+++ b/src/Integration.Tests/IntegrationTestBase.cs
@@ -10,7 +10,7 @@ public class IntegrationTestBase : IDisposable
 
     public IntegrationTestBase()
     {
-        string pythonVersionWindows = "3.12.4";
+        string pythonVersionWindows = Environment.GetEnvironmentVariable("PYTHON_VERSION") ?? "3.12.4";
         string pythonVersionMacOS = Environment.GetEnvironmentVariable("PYTHON_VERSION") ?? "3.12";
         string pythonVersionLinux = Environment.GetEnvironmentVariable("PYTHON_VERSION") ?? "3.12";
         string venvPath = Path.Join(Environment.CurrentDirectory, "python", ".venv");
diff --git a/src/Profile/BaseBenchmark.cs b/src/Profile/BaseBenchmark.cs
index 9a46929e..f8bf4086 100644
--- a/src/Profile/BaseBenchmark.cs
+++ b/src/Profile/BaseBenchmark.cs
@@ -9,7 +9,7 @@ public class BaseBenchmark
 
     public BaseBenchmark()
     {
-        string pythonVersionWindows = "3.12.4";
+        string pythonVersionWindows = Environment.GetEnvironmentVariable("PYTHON_VERSION") ?? "3.12.4";
         string pythonVersionMacOS = Environment.GetEnvironmentVariable("PYTHON_VERSION") ?? "3.12";
         string pythonVersionLinux = Environment.GetEnvironmentVariable("PYTHON_VERSION") ?? "3.12";