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}')