diff --git a/contrib/automation/hgautomation/linux.py b/contrib/automation/hgautomation/linux.py
index 661f1e3b07afe715b01d917a644bfccb3610e7e7_Y29udHJpYi9hdXRvbWF0aW9uL2hnYXV0b21hdGlvbi9saW51eC5weQ==..f95b16796688d2754df7e15fbeb8d7da03d23937_Y29udHJpYi9hdXRvbWF0aW9uL2hnYXV0b21hdGlvbi9saW51eC5weQ== 100644
--- a/contrib/automation/hgautomation/linux.py
+++ b/contrib/automation/hgautomation/linux.py
@@ -75,7 +75,7 @@
 sudo -H -u hg -g hg /home/hg/.cargo/bin/rustup install 1.31.1 1.46.0
 sudo -H -u hg -g hg /home/hg/.cargo/bin/rustup component add clippy
 
-sudo -H -u hg -g hg /home/hg/.cargo/bin/cargo install --git https://github.com/indygreg/PyOxidizer.git --rev 4697fb25918dfad6dc73288daeea501063963a08 pyoxidizer
+sudo -H -u hg -g hg /home/hg/.cargo/bin/cargo install --version 0.9.0 pyoxidizer
 '''
 
 
diff --git a/contrib/install-windows-dependencies.ps1 b/contrib/install-windows-dependencies.ps1
index 661f1e3b07afe715b01d917a644bfccb3610e7e7_Y29udHJpYi9pbnN0YWxsLXdpbmRvd3MtZGVwZW5kZW5jaWVzLnBzMQ==..f95b16796688d2754df7e15fbeb8d7da03d23937_Y29udHJpYi9pbnN0YWxsLXdpbmRvd3MtZGVwZW5kZW5jaWVzLnBzMQ== 100644
--- a/contrib/install-windows-dependencies.ps1
+++ b/contrib/install-windows-dependencies.ps1
@@ -125,7 +125,7 @@
     Invoke-Process "${prefix}\cargo\bin\rustup.exe" "component add clippy"
 
     # Install PyOxidizer for packaging.
-    Invoke-Process "${prefix}\cargo\bin\cargo.exe" "install --git https://github.com/indygreg/PyOxidizer.git --rev 4697fb25918dfad6dc73288daeea501063963a08 pyoxidizer"
+    Invoke-Process "${prefix}\cargo\bin\cargo.exe" "install --version 0.9.0 pyoxidizer"
 }
 
 function Install-Dependencies($prefix) {
diff --git a/rust/hgcli/pyoxidizer.bzl b/rust/hgcli/pyoxidizer.bzl
index 661f1e3b07afe715b01d917a644bfccb3610e7e7_cnVzdC9oZ2NsaS9weW94aWRpemVyLmJ6bA==..f95b16796688d2754df7e15fbeb8d7da03d23937_cnVzdC9oZ2NsaS9weW94aWRpemVyLmJ6bA== 100644
--- a/rust/hgcli/pyoxidizer.bzl
+++ b/rust/hgcli/pyoxidizer.bzl
@@ -39,6 +39,7 @@
     # Extension may depend on any Python functionality. Include all
     # extensions.
     packaging_policy.extension_module_filter = "all"
-    packaging_policy.resources_policy = "prefer-in-memory-fallback-filesystem-relative:lib"
+    packaging_policy.resources_location = "in-memory"
+    packaging_policy.resources_location_fallback = "filesystem-relative:lib"
     packaging_policy.register_resource_callback(resource_callback)
 
@@ -43,14 +44,13 @@
     packaging_policy.register_resource_callback(resource_callback)
 
-    config = PythonInterpreterConfig(
-        raw_allocator = "system",
-        run_eval = RUN_CODE,
-        # We want to let the user load extensions from the file system
-        filesystem_importer = True,
-        # We need this to make resourceutil happy, since it looks for sys.frozen.
-        sys_frozen = True,
-        legacy_windows_stdio = True,
-    )
+    config = dist.make_python_interpreter_config()
+    config.raw_allocator = "system"
+    config.run_mode = "eval:%s" % RUN_CODE
+    # We want to let the user load extensions from the file system
+    config.filesystem_importer = True
+    # We need this to make resourceutil happy, since it looks for sys.frozen.
+    config.sys_frozen = True
+    config.legacy_windows_stdio = True
 
     exe = dist.to_python_executable(
         name = "hg",
@@ -104,5 +104,5 @@
 # Everything below this is typically managed by PyOxidizer and doesn't need
 # to be updated by people.
 
-PYOXIDIZER_VERSION = "0.8.0-pre"
-PYOXIDIZER_COMMIT = "4697fb25918dfad6dc73288daeea501063963a08"
+PYOXIDIZER_VERSION = "0.9.0"
+PYOXIDIZER_COMMIT = "1fbc264cc004226cd76ee452e0a386ffca6ccfb1"