diff --git a/python/installer.go b/python/installer.go
index ab3d9b4..04698c5 100644
--- a/python/installer.go
+++ b/python/installer.go
@@ -15,47 +15,26 @@
 package python
 
 import (
-	"path/filepath"
-
 	"android/soong/android"
 )
 
 // This file handles installing python executables into their final location
 
-type installLocation int
-
-const (
-	InstallInData installLocation = iota
-)
-
 type pythonInstaller struct {
-	dir      string
-	dir64    string
-	relative string
+	dir string
 
 	path android.OutputPath
 }
 
-func NewPythonInstaller(dir, dir64 string) *pythonInstaller {
+func NewPythonInstaller(dir string) *pythonInstaller {
 	return &pythonInstaller{
-		dir:   dir,
-		dir64: dir64,
+		dir: dir,
 	}
 }
 
 var _ installer = (*pythonInstaller)(nil)
 
-func (installer *pythonInstaller) installDir(ctx android.ModuleContext) android.OutputPath {
-	dir := installer.dir
-	if ctx.Arch().ArchType.Multilib == "lib64" && installer.dir64 != "" {
-		dir = installer.dir64
-	}
-	if !ctx.Host() && !ctx.Arch().Native {
-		dir = filepath.Join(dir, ctx.Arch().ArchType.String())
-	}
-	return android.PathForModuleInstall(ctx, dir, installer.relative)
-}
-
 func (installer *pythonInstaller) install(ctx android.ModuleContext, file android.Path) {
-	installer.path = ctx.InstallFile(installer.installDir(ctx), file.Base(), file)
+	installer.path = ctx.InstallFile(android.PathForModuleInstall(ctx, installer.dir),
+		file.Base(), file)
 }
