diff --git a/python/binary.go b/python/binary.go
index 75135f3..95c751a 100644
--- a/python/binary.go
+++ b/python/binary.go
@@ -125,6 +125,25 @@
 				launcherPath = provider.IntermPathForModuleOut()
 			}
 		})
+
+		// TODO: get the list of shared libraries directly from the launcher module somehow
+		var sharedLibs []string
+		sharedLibs = append(sharedLibs, "libsqlite")
+		if ctx.Target().Os.Bionic() {
+			sharedLibs = append(sharedLibs, "libc", "libdl", "libm")
+		}
+		if ctx.Target().Os == android.LinuxMusl && !ctx.Config().HostStaticBinaries() {
+			sharedLibs = append(sharedLibs, "libc_musl")
+		}
+		switch p.properties.Actual_version {
+		case pyVersion2:
+			sharedLibs = append(sharedLibs, "libc++")
+		case pyVersion3:
+			if ctx.Device() {
+				sharedLibs = append(sharedLibs, "liblog")
+			}
+		}
+		p.androidMkSharedLibs = sharedLibs
 	}
 	srcsZips := make(android.Paths, 0, len(depsSrcsZips)+1)
 	if embeddedLauncher {
@@ -136,14 +155,6 @@
 	p.installSource = registerBuildActionForParFile(ctx, embeddedLauncher, launcherPath,
 		p.getHostInterpreterName(ctx, p.properties.Actual_version),
 		main, p.getStem(ctx), srcsZips)
-
-	var sharedLibs []string
-	// if embedded launcher is enabled, we need to collect the shared library dependencies of the
-	// launcher
-	for _, dep := range ctx.GetDirectDepsWithTag(launcherSharedLibTag) {
-		sharedLibs = append(sharedLibs, ctx.OtherModuleName(dep))
-	}
-	p.androidMkSharedLibs = sharedLibs
 }
 
 func (p *PythonBinaryModule) AndroidMkEntries() []android.AndroidMkEntries {
@@ -176,7 +187,7 @@
 	p.PythonLibraryModule.DepsMutator(ctx)
 
 	if p.isEmbeddedLauncherEnabled() {
-		p.AddDepsOnPythonLauncherAndStdlib(ctx, pythonLibTag, launcherTag, launcherSharedLibTag, p.autorun(), ctx.Target())
+		p.AddDepsOnPythonLauncherAndStdlib(ctx, pythonLibTag, launcherTag, p.autorun(), ctx.Target())
 	}
 }
 
diff --git a/python/python.go b/python/python.go
index 18e5b68..c23be8d 100644
--- a/python/python.go
+++ b/python/python.go
@@ -226,20 +226,18 @@
 	pythonLibTag = dependencyTag{name: "pythonLib"}
 	javaDataTag  = dependencyTag{name: "javaData"}
 	// The python interpreter, with soong module name "py3-launcher" or "py3-launcher-autorun".
-	launcherTag          = dependencyTag{name: "launcher"}
-	launcherSharedLibTag = installDependencyTag{name: "launcherSharedLib"}
+	launcherTag = dependencyTag{name: "launcher"}
 	// The python interpreter built for host so that we can precompile python sources.
 	// This only works because the precompiled sources don't vary by architecture.
 	// The soong module name is "py3-launcher".
-	hostLauncherTag          = dependencyTag{name: "hostLauncher"}
-	hostlauncherSharedLibTag = dependencyTag{name: "hostlauncherSharedLib"}
-	hostStdLibTag            = dependencyTag{name: "hostStdLib"}
-	pathComponentRegexp      = regexp.MustCompile(`^[a-zA-Z_][a-zA-Z0-9_-]*$`)
-	pyExt                    = ".py"
-	protoExt                 = ".proto"
-	pyVersion2               = "PY2"
-	pyVersion3               = "PY3"
-	internalPath             = "internal"
+	hostLauncherTag     = dependencyTag{name: "hostLauncher"}
+	hostStdLibTag       = dependencyTag{name: "hostStdLib"}
+	pathComponentRegexp = regexp.MustCompile(`^[a-zA-Z_][a-zA-Z0-9_-]*$`)
+	pyExt               = ".py"
+	protoExt            = ".proto"
+	pyVersion2          = "PY2"
+	pyVersion3          = "PY3"
+	internalPath        = "internal"
 )
 
 type basePropertiesProvider interface {
@@ -323,35 +321,21 @@
 	javaDataVariation := []blueprint.Variation{{"arch", android.Common.String()}}
 	ctx.AddVariationDependencies(javaDataVariation, javaDataTag, p.properties.Java_data...)
 
-	p.AddDepsOnPythonLauncherAndStdlib(ctx, hostStdLibTag, hostLauncherTag, hostlauncherSharedLibTag, false, ctx.Config().BuildOSTarget)
+	p.AddDepsOnPythonLauncherAndStdlib(ctx, hostStdLibTag, hostLauncherTag, false, ctx.Config().BuildOSTarget)
 }
 
-// AddDepsOnPythonLauncherAndStdlib will make the current module depend on the python stdlib,
-// launcher (interpreter), and the launcher's shared libraries. If autorun is true, it will use
-// the autorun launcher instead of the regular one. This function acceps a targetForDeps argument
-// as the target to use for these dependencies. For embedded launcher python binaries, the launcher
-// that will be embedded will be under the same target as the python module itself. But when
-// precompiling python code, we need to get the python launcher built for host, even if we're
-// compiling the python module for device, so we pass a different target to this function.
+// AddDepsOnPythonLauncherAndStdlib will make the current module depend on the python stdlib
+// and launcher (interpreter). If autorun is true, it will use the autorun launcher instead of the
+// regular one. This function accepts a targetForDeps argument as the target to use for these
+// dependencies. For embedded launcher python binaries, the launcher that will be embedded will be
+// under the same target as the python module itself. But when precompiling python code, we need to
+// get the python launcher built for host, even if we're compiling the python module for device, so
+// we pass a different target to this function.
 func (p *PythonLibraryModule) AddDepsOnPythonLauncherAndStdlib(ctx android.BottomUpMutatorContext,
-	stdLibTag, launcherTag, launcherSharedLibTag blueprint.DependencyTag,
+	stdLibTag, launcherTag blueprint.DependencyTag,
 	autorun bool, targetForDeps android.Target) {
 	var stdLib string
 	var launcherModule string
-	// Add launcher shared lib dependencies. Ideally, these should be
-	// derived from the `shared_libs` property of the launcher. TODO: read these from
-	// the python launcher itself using ctx.OtherModuleProvider() or similar on the result
-	// of ctx.AddFarVariationDependencies()
-	launcherSharedLibDeps := []string{
-		"libsqlite",
-	}
-	// Add launcher-specific dependencies for bionic
-	if targetForDeps.Os.Bionic() {
-		launcherSharedLibDeps = append(launcherSharedLibDeps, "libc", "libdl", "libm")
-	}
-	if targetForDeps.Os == android.LinuxMusl && !ctx.Config().HostStaticBinaries() {
-		launcherSharedLibDeps = append(launcherSharedLibDeps, "libc_musl")
-	}
 
 	switch p.properties.Actual_version {
 	case pyVersion2:
@@ -362,7 +346,6 @@
 			launcherModule = "py2-launcher-autorun"
 		}
 
-		launcherSharedLibDeps = append(launcherSharedLibDeps, "libc++")
 	case pyVersion3:
 		stdLib = "py3-stdlib"
 
@@ -373,9 +356,6 @@
 		if ctx.Config().HostStaticBinaries() && targetForDeps.Os == android.LinuxMusl {
 			launcherModule += "-static"
 		}
-		if ctx.Device() {
-			launcherSharedLibDeps = append(launcherSharedLibDeps, "liblog")
-		}
 	default:
 		panic(fmt.Errorf("unknown Python Actual_version: %q for module: %q.",
 			p.properties.Actual_version, ctx.ModuleName()))
@@ -391,7 +371,6 @@
 		ctx.AddFarVariationDependencies(stdLibVariations, stdLibTag, stdLib)
 	}
 	ctx.AddFarVariationDependencies(targetVariations, launcherTag, launcherModule)
-	ctx.AddFarVariationDependencies(targetVariations, launcherSharedLibTag, launcherSharedLibDeps...)
 }
 
 // GenerateAndroidBuildActions performs build actions common to all Python modules
@@ -595,22 +574,19 @@
 			}
 		})
 	}
+	var launcherSharedLibs android.Paths
+	var ldLibraryPath []string
 	ctx.VisitDirectDepsWithTag(hostLauncherTag, func(module android.Module) {
 		if dep, ok := module.(IntermPathProvider); ok {
 			optionalLauncher := dep.IntermPathForModuleOut()
 			if optionalLauncher.Valid() {
 				launcher = optionalLauncher.Path()
 			}
-		}
-	})
-	var launcherSharedLibs android.Paths
-	var ldLibraryPath []string
-	ctx.VisitDirectDepsWithTag(hostlauncherSharedLibTag, func(module android.Module) {
-		if dep, ok := module.(IntermPathProvider); ok {
-			optionalPath := dep.IntermPathForModuleOut()
-			if optionalPath.Valid() {
-				launcherSharedLibs = append(launcherSharedLibs, optionalPath.Path())
-				ldLibraryPath = append(ldLibraryPath, filepath.Dir(optionalPath.Path().String()))
+			for _, spec := range module.TransitivePackagingSpecs() {
+				if strings.HasSuffix(spec.SrcPath().String(), ".so") {
+					launcherSharedLibs = append(launcherSharedLibs, spec.SrcPath())
+					ldLibraryPath = append(ldLibraryPath, filepath.Dir(spec.SrcPath().String()))
+				}
 			}
 		}
 	})
