So importieren Sie ein lokales Python-Modul, wenn Sie den Befehl sbatch in SLURM @ verwend

Ich habe den Cluster-Manager verwendet slurm und ich habe ein Übermittlungsskript mit sbatch (mit einem Python-Interpeter) ausgeführt. Die sbatch Submission importierte eines meiner Module mit dem Namenmain_nn.py. Das Modul befindet sich am selben Ort wie mein Übermittlungsverzeichnis. Python kann es jedoch nicht finden, obwohl die Datei vorhanden ist. Es fällt mir schwer, herauszufinden, warum dies geschieht. Meine Python-Datei sieht wie folgt aus:

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

print('hi')

import main_nn

ie Ausgabe meiner Slurm-Dump-Datei lautet jedoch:

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

Ich habe versucht zu überprüfen, ob das Modulmain_nn war im aktuellen Verzeichnis und es war in der Tat da. Das erste, was mir verdächtig vorkam, war, dass der Fehler in der Slurm-Datei besagte, dass sich der Speicherort meines Skripts auf @ befan"/home/slurm/slurmd/job3223398/slurm_script" anstatt beipath_to_project. Also habe ich die Zeile @ hinzugefü

os.system('pwd')

um zu sehen, wo mein Skript ausgeführt wurde und zu meiner Überraschung wurde es bei @ ausgefühpath_to_project anstatt bei"/home/slurm/slurmd/job3223398/slurm_script", was bedeuten muss, dass sbatch ein Skript an einer Stelle nicht korrekt ausführt, sondern an einer anderen Stelle denkt. Wenn dies der Fall ist, wie soll ich dann in Python einen Import durchführen, bei dem sich das Modul an der gleichen Stelle befindet wie in meinem Übermittlungsskript? Bin ich gezwungen, es in ein Paket zu packen und Python zu tricksen, um es in einem Paket / einer Bibliothek zu denken?