69 lines
2.4 KiB
Python
69 lines
2.4 KiB
Python
import sys
|
|
import os
|
|
|
|
# ✅ Path to be added in the .pth file
|
|
SHARED_LIBS_PATH = "/usr/local/share/shared_libs"
|
|
PTH_FILE_NAME = "shared_libs.pth"
|
|
|
|
|
|
def ensure_shared_libs_pth_exists():
|
|
"""
|
|
Checks if all site-packages directories have a `.pth` file with the correct path.
|
|
Creates or updates it if missing or incorrect.
|
|
"""
|
|
# Search for all site-packages directories (e.g., /usr/lib/python3.x/site-packages/)
|
|
for root, dirs, files in os.walk("/usr"):
|
|
if "site-packages" in dirs:
|
|
site_packages_dir = os.path.join(root, "site-packages")
|
|
|
|
pth_file_path = os.path.join(site_packages_dir, PTH_FILE_NAME)
|
|
|
|
# Check if the file exists and is correct
|
|
if not os.path.exists(pth_file_path):
|
|
print(f"⚠️ .pth file not found: {pth_file_path}. Creating...")
|
|
with open(pth_file_path, "w") as f:
|
|
f.write(SHARED_LIBS_PATH + "\n")
|
|
|
|
else:
|
|
# Check if the correct path is in the file
|
|
with open(pth_file_path, "r") as f:
|
|
content = f.read().strip()
|
|
|
|
if not content == SHARED_LIBS_PATH:
|
|
print(f"⚠️ .pth file exists but has incorrect content. Fixing...")
|
|
with open(pth_file_path, "w") as f:
|
|
f.write(SHARED_LIBS_PATH + "\n")
|
|
|
|
print("✅ All .pth files checked and corrected.")
|
|
|
|
|
|
def main():
|
|
try:
|
|
# Try to import the module
|
|
from shared_libs.wp_app_config import AppConfig
|
|
|
|
print("✅ 'shared_libs' is correctly loaded. Starting the application...")
|
|
|
|
# Your main program logic here...
|
|
except ModuleNotFoundError as e:
|
|
# Only handle errors related to missing .pth file
|
|
if "No module named 'shared_libs'" in str(e):
|
|
print("⚠️ Error: 'shared_libs' module not found. Checking .pth file...")
|
|
ensure_shared_libs_pth_exists()
|
|
|
|
# Try again after fixing the .pth file
|
|
try:
|
|
from shared_libs.wp_app_config import AppConfig
|
|
|
|
print("✅ After correcting the .pth file: Module loaded.")
|
|
# Your main program logic here...
|
|
except Exception as e2:
|
|
print(f"❌ Error after correcting the .pth file: {e2}")
|
|
else:
|
|
# For other errors, re-raise them
|
|
raise
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|