diff --git a/src/cthulhu.py b/src/cthulhu.py index 07eb7af..9896840 100644 --- a/src/cthulhu.py +++ b/src/cthulhu.py @@ -48,13 +48,33 @@ def setup_paths(): if currentDir.startswith(os.path.expanduser('~/.local')): # Local installation (~/.local/bin/cthulhu) prefix = os.path.expanduser('~/.local') - pythondir = os.path.join(prefix, 'lib', f'python{sys.version_info.major}.{sys.version_info.minor}', 'site-packages') - datadir = os.path.join(prefix, 'share', 'cthulhu') + elif currentDir.startswith('/usr/local'): + # /usr/local installation + prefix = '/usr/local' else: # System installation (/usr/bin/cthulhu) prefix = '/usr' - pythondir = os.path.join(prefix, 'lib', f'python{sys.version_info.major}.{sys.version_info.minor}', 'site-packages') - datadir = os.path.join(prefix, 'share', 'cthulhu') + + # Try to find Python modules in multiple possible locations + python_version = f'python{sys.version_info.major}.{sys.version_info.minor}' + possible_pythondirs = [ + os.path.join(prefix, 'lib', python_version, 'site-packages'), + os.path.join('/usr', 'lib', python_version, 'site-packages'), # System fallback + os.path.join('/usr/local', 'lib', python_version, 'site-packages') # /usr/local fallback + ] + + # Use the first directory that contains the cthulhu module + pythondir = None + for candidate_dir in possible_pythondirs: + if os.path.exists(os.path.join(candidate_dir, 'cthulhu', '__init__.py')): + pythondir = candidate_dir + break + + if pythondir is None: + # Fallback to prefix-relative path if module not found + pythondir = os.path.join(prefix, 'lib', python_version, 'site-packages') + + datadir = os.path.join(prefix, 'share', 'cthulhu') sys.path.insert(1, pythondir)