Explorer
/tmp/erstimport.py
← Zurück ↓ Download
import sys
import time

# Track the first import of visual_render
import_event = None

def import_hook(name, *args, **kwargs):
    global import_event
    if name == 'visual_render':
        import_event = {
            'time': time.time(),
            'sys_path': sys.path.copy(),
            'modules_before': {k: v.__file__ if hasattr(v, '__file__') else None 
                              for k, v in __import__('sys').modules.items() 
                              if k == 'visual_render'},
            'visual_render_file': None
        }
        try:
            __import__('visual_render')
            import_event['visual_render_file'] = __import__('visual_render').__file__
        except Exception as e:
            import_event['import_error'] = str(e)

# Remove visual_render from modules if present to ensure fresh import
if 'visual_render' in __import__('sys').modules:
    del __import__('sys').modules['visual_render']

# Apply the hook
old_import = __builtins__.__import__
def patched_import(name, *args, **kwargs):
    result = __builtins__.__import__(name, *args, **kwargs)
    if name == 'visual_render' and import_event is not None:
        import_event['visual_render_file'] = __import__('visual_render').__file__
    return result

__builtins__.__import__ = patched_import

# Apply the hook properly
try:
    __builtins__.__builtins__['import'] = import_hook
except:
    pass

# Remove visual_render from modules if present
try:
    __import__('sys').modules.pop('visual_render', None)
except:
    pass

# Now try to import visual_render
try:
    __import__('visual_render')
    ie = import_event
    if ie:
        print('=== ERSTIMPORT NACHWEIS ===')
        print(f'1. Zeitpunkt: {ie["time"]}')
        print(f'2. visual_render.__file__: {ie["visual_render_file"]}')
        print(f'3. sys.path zum Zeitpunkt des Imports:')
        for i, p in enumerate(ie['sys_path']):
            print(f'   {i}: {ie["sys_path"][i]}')
        print(f'4. /opt/struktur/social-media-agent in sys.path: {"JA" if "/opt/struktur/social-media-agent" in ie["sys_path"] else "NEIN"}')
        print(f'5. welche Module vor dem Import geladen waren:')
        for mod_name, mod_file in ie['sys_modules'].items():
            if mod_file:
                print(f'   {mod_name}: {ie["sys_modules"][mod_name]}')
        print(f'6. sys.modules-Caching als Ursache: {"JA" if __import__("sys").modules.get("visual_render") == __import__("visual_render") else "NEIN"}')
except Exception as e:
    print(f'ERROR: {e}')