La importación de Python falla cuando se llama desde PHP

Tengo un problema desconcertante al intentar importar un módulo en python solo cuando se llama al script desde php a través del sistema o exec.

De la shell de python:

import igraph #This works. 

si la línea anterior estaba en un archivo, por ejemplo, test_module.py, entonces:
python test_module.py en el bash funciona.

Dentro de PHP:
exec (“python test_module.py”, $ output, $ retval) -> falla: $ retval = 1.

Sin embargo, si el script es en cambio: import math , entonces esto está bien.

¿Alguna vez alguien trató con algo similar?

una cosa para comprobar es sys.path

ver cuál es la diferencia cuando se llama de cada manera

¿Está el módulo igraph en la ruta del módulo estándar de Python, o está en el mismo directorio que su script individual? Si es así, es muy posible que PHP esté llamando al archivo python con un directorio de trabajo diferente, e intente importar cosas relativas a esa ruta en lugar de la ruta del script.

Esto está sucediendo porque ha instalado esos paquetes con un usuario diferente, tal vez root, o algo más.

Cómo depuré esto, es que verifiqué la salida de sys.path para ambos casos (shell, y php’s exec, que tiene el usuario www-data por defecto), y comparé ambos.

Noté que '/root/.local/lib/python2.7/site-packages' ruta '/root/.local/lib/python2.7/site-packages' cuando la ejecuté desde PHP, que contenía exactamente estos paquetes faltantes. Así que solo copié el contenido de esta carpeta a '/usr/lib/python2.7/dist-packages/' , que resolvió el problema.