@@ -150,7 +150,8 @@ protected void onPostExecute(String result) {
150150 File path = new File (getIntent ().getData ().getSchemeSpecificPart ());
151151
152152 Project p = Project .scanDirectory (path );
153- SDLActivity .nativeSetEnv ("ANDROID_ENTRYPOINT" , p .dir + "/main.py" );
153+ String entry_point = getEntryPoint (p .dir );
154+ SDLActivity .nativeSetEnv ("ANDROID_ENTRYPOINT" , p .dir + "/" + entry_point );
154155 SDLActivity .nativeSetEnv ("ANDROID_ARGUMENT" , p .dir );
155156 SDLActivity .nativeSetEnv ("ANDROID_APP_PATH" , p .dir );
156157
@@ -171,7 +172,8 @@ protected void onPostExecute(String result) {
171172 // pass
172173 }
173174 } else {
174- SDLActivity .nativeSetEnv ("ANDROID_ENTRYPOINT" , "main.pyo" );
175+ String entry_point = getEntryPoint (app_root_dir );
176+ SDLActivity .nativeSetEnv ("ANDROID_ENTRYPOINT" , entry_point );
175177 SDLActivity .nativeSetEnv ("ANDROID_ARGUMENT" , app_root_dir );
176178 SDLActivity .nativeSetEnv ("ANDROID_APP_PATH" , app_root_dir );
177179 }
@@ -368,9 +370,10 @@ public static void start_service(String serviceTitle, String serviceDescription,
368370 String argument = PythonActivity .mActivity .getFilesDir ().getAbsolutePath ();
369371 String filesDirectory = argument ;
370372 String app_root_dir = PythonActivity .mActivity .getAppRoot ();
373+ String entry_point = PythonActivity .mActivity .getEntryPoint (app_root_dir + "/service" );
371374 serviceIntent .putExtra ("androidPrivate" , argument );
372375 serviceIntent .putExtra ("androidArgument" , app_root_dir );
373- serviceIntent .putExtra ("serviceEntrypoint" , "service/main.pyo" );
376+ serviceIntent .putExtra ("serviceEntrypoint" , "service/" + entry_point );
374377 serviceIntent .putExtra ("pythonName" , "python" );
375378 serviceIntent .putExtra ("pythonHome" , app_root_dir );
376379 serviceIntent .putExtra ("pythonPath" , app_root_dir + ":" + app_root_dir + "/lib" );
@@ -463,6 +466,21 @@ public void run() {
463466 });
464467 }
465468
469+ public String getEntryPoint (String search_dir ) {
470+ /* Get the main file (.pyc|.pyo|.py) depending on if we
471+ * have a compiled version or not.
472+ */
473+ List <String > entryPoints = new ArrayList <String >();
474+ entryPoints .add ("main.pyo" ); // python 2 compiled files
475+ entryPoints .add ("main.pyc" ); // python 3 compiled files
476+ for (String value : entryPoints ) {
477+ File mainFile = new File (search_dir + "/" + value );
478+ if (mainFile .exists ()) {
479+ return value ;
480+ }
481+ }
482+ return "main.py" ;
483+ }
466484
467485 protected void showLoadingScreen () {
468486 // load the bitmap
0 commit comments