Skip to content

Commit bd5ce20

Browse files
author
Jonas Thiem
committed
Also copy the service/main.py when building with setup.py
1 parent 308df31 commit bd5ce20

File tree

1 file changed

+26
-8
lines changed
  • pythonforandroid/bootstraps/common/build

1 file changed

+26
-8
lines changed

pythonforandroid/bootstraps/common/build/build.py

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -321,16 +321,34 @@ def make_package(args):
321321
'full private data into .apk.')
322322
tar_dirs.append(args.private)
323323
else:
324-
print('Copying main.py ONLY, since other app data is '
325-
'expected in site-packages.')
324+
print("Copying main.py's ONLY, since other app data is "
325+
"expected in site-packages.")
326326
main_py_only_dir = tempfile.mkdtemp()
327327
_temp_dirs_to_clean.append(main_py_only_dir)
328-
if exists(join(args.private, "main.pyo")):
329-
shutil.copyfile(join(args.private, "main.pyo"),
330-
join(main_py_only_dir, "main.pyo"))
331-
elif exists(join(args.private, "main.py")):
332-
shutil.copyfile(join(args.private, "main.py"),
333-
join(main_py_only_dir, "main.py"))
328+
329+
# Check all main.py files we need to copy:
330+
copy_paths = ["main.py", join("service", "main.py")]
331+
for copy_path in copy_paths:
332+
variants = [
333+
copy_path,
334+
copy_path.partition(".")[0] + ".pyc",
335+
copy_path.partition(".")[0] + ".pyo",
336+
]
337+
# Check in all variants with all possible endings:
338+
for variant in variants:
339+
if exists(join(args.private, variant)):
340+
# Make sure surrounding directly exists:
341+
dir_path = os.path.dirname(variant)
342+
if (len(dir_path) > 0 and
343+
not exists(
344+
join(main_py_only_dir, dir_path)
345+
)):
346+
os.mkdir(join(main_py_only_dir, dir_path))
347+
# Copy actual file:
348+
shutil.copyfile(join(args.private, variant),
349+
join(main_py_only_dir, variant))
350+
351+
# Append directory with all main.py's to result apk paths:
334352
tar_dirs.append(main_py_only_dir)
335353
for python_bundle_dir in ('private', '_python_bundle'):
336354
if exists(python_bundle_dir):

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy