Cómo importar un módulo python local cuando se usa el comando sbatch en SLURM

Estaba usando el administrador de clústerslurm y estaba ejecutando un script de envío con sbatch (con un intérprete de python). El envío de sbatch importó uno de mis módulos llamadomain_nn.py. El módulo se encuentra en el mismo lugar que mi directorio de envío, sin embargo, Python no lo encuentra a pesar de que el archivo existe. Me está costando entender por qué sucede esto. Mi archivo de Python tiene el siguiente aspecto:

#!/us,r/bin/env python
#SBATCH --job-name=Python

print('hi')

import main_nn

Sin embargo, la salida de mi archivo de volcado slurm es:

hi
Traceback (most recent call last):
    File "/home/slurm/slurmd/job3223398/slurm_script", line6, in <module>
        import main_nn
ImportError: No module named main_nn

Traté de verificar si el módulomain_nn estaba en el directorio actual y estaba allí de hecho. Por lo tanto, lo primero que me pareció sospechoso fue que el error en el archivo slurm decía que la ubicación de mi script estaba en"/home/slurm/slurmd/job3223398/slurm_script" en lugar de apath_to_project. Así que seguí adelante y agregué la línea

os.system('pwd')

para ver desde dónde se estaba ejecutando mi script y, para mi sorpresa, se estaba ejecutando enpath_to_project en lugar de a"/home/slurm/slurmd/job3223398/slurm_script" lo que debe significar que sbatch está haciendo algo extraño para ejecutar un script en una ubicación pero hacer que piense que está en otra. Si este es el caso, ¿cómo se supone que debo hacer una importación en Python donde el módulo está en la misma ubicación que en mi script de envío? ¿Estoy obligado a ponerlo en un paquete y engañar a Python para pensar que está en un paquete / biblioteca?

Respuestas a la pregunta(1)

Su respuesta a la pregunta