Hi all, i've created the script below which i hope can be useful for others

If you find this sort of thing useful i'd be happy to clean the code


import subprocess
import os
import os.path

REMOVED_DIR = "removed"

os.chdir("../dist/your-application")
print(f"{os.getcwd()=}")
if not os.path.isdir(REMOVED_DIR):
    os.mkdir(REMOVED_DIR)

# These files are used after the application has been started, so are not 
detected by our call to subprocess.run
PROTECTED_FILES = ["libQt6Multimedia.so.6", "libQt6Svg.so.6"]

all_files_in_base_dir = os.listdir(os.getcwd())
selected_so_files_in_base_dir = [fn for fn in all_files_in_base_dir if 
".so" in fn and fn not in PROTECTED_FILES]

for filename in selected_so_files_in_base_dir:
    cur_path = os.path.join(os.getcwd(), filename)
    new_path = os.path.join(os.getcwd(), REMOVED_DIR, filename)
    os.rename(cur_path, new_path)
    try:
        shell_result = subprocess.run(
            "./your-application",
            stdout=subprocess.PIPE, timeout=2)
        # If we get here it means the application didn't start, so we need 
the file, and therefore move it back
        os.rename(new_path, cur_path)
        print(f"+++++ We need this file: '{filename}' --- so it has been 
moved back to the base dir")
    except subprocess.TimeoutExpired:
        print(f"----- We don't need this file: '{filename}' --- so it has 
been moved to the '{REMOVED_DIR}' dir")


Here is a link to the source for my own project, this file is more messy 
though: 
https://gitlab.com/mindfulness-at-the-computer/mindfulness-at-the-computer/-/blob/master/varia/so_files.py

-- 
You received this message because you are subscribed to the Google Groups 
"PyInstaller" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to pyinstaller+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/pyinstaller/b5b76573-5f52-4fcc-bebd-6cabf21abc63n%40googlegroups.com.

Reply via email to