diff --git a/python/binary.go b/python/binary.go
index 304c9a9..bf6167c 100644
--- a/python/binary.go
+++ b/python/binary.go
@@ -143,7 +143,7 @@
 
 func NewBinary(hod android.HostOrDeviceSupported) (*Module, *binaryDecorator) {
 	module := newModule(hod, android.MultilibFirst)
-	decorator := &binaryDecorator{pythonInstaller: NewPythonInstaller("bin", "", module)}
+	decorator := &binaryDecorator{pythonInstaller: NewPythonInstaller("bin", "")}
 
 	module.bootstrapper = decorator
 	module.installer = decorator
diff --git a/python/installer.go b/python/installer.go
index 515cc47..396f036 100644
--- a/python/installer.go
+++ b/python/installer.go
@@ -36,14 +36,12 @@
 	path android.InstallPath
 
 	androidMkSharedLibs []string
-	module              *Module
 }
 
-func NewPythonInstaller(dir, dir64 string, module *Module) *pythonInstaller {
+func NewPythonInstaller(dir, dir64 string) *pythonInstaller {
 	return &pythonInstaller{
-		dir:    dir,
-		dir64:  dir64,
-		module: module,
+		dir:   dir,
+		dir64: dir64,
 	}
 }
 
@@ -61,14 +59,7 @@
 }
 
 func (installer *pythonInstaller) install(ctx android.ModuleContext, file android.Path) {
-	if ctx.ModuleType() == "python_binary_host" && installer.module.MixedBuildsEnabled(ctx) {
-		label := installer.module.BazelModuleBase.GetBazelLabel(ctx, installer.module)
-		binary, _ := ctx.Config().BazelContext.GetPythonBinary(label, android.GetConfigKey(ctx))
-		bazelBinaryOutPath := android.PathForBazelOut(ctx, binary)
-		installer.path = ctx.InstallFile(installer.installDir(ctx), bazelBinaryOutPath.Base(), bazelBinaryOutPath)
-	} else {
-		installer.path = ctx.InstallFile(installer.installDir(ctx), file.Base(), file)
-	}
+	installer.path = ctx.InstallFile(installer.installDir(ctx), file.Base(), file)
 }
 
 func (installer *pythonInstaller) setAndroidMkSharedLibs(sharedLibs []string) {
diff --git a/python/test.go b/python/test.go
index 3cd900f..7413782 100644
--- a/python/test.go
+++ b/python/test.go
@@ -101,7 +101,7 @@
 func NewTest(hod android.HostOrDeviceSupported) *Module {
 	module, binary := NewBinary(hod)
 
-	binary.pythonInstaller = NewPythonInstaller("nativetest", "nativetest64", module)
+	binary.pythonInstaller = NewPythonInstaller("nativetest", "nativetest64")
 
 	test := &testDecorator{binaryDecorator: binary}
 	if hod == android.HostSupportedNoCross && test.testProperties.Test_options.Unit_test == nil {
