클러스터 관리자 slurm을 사용하고 있으며 sbatch (파이썬 인터 피터)를 사용하여 제출 스크립트를 실행하고있었습니다. sbatch submission은 main_nn.py
이라는 모듈 중 하나를 가져 왔습니다. 모듈은 제출 디렉터리와 같은 위치에 있지만 파일이 존재하더라도 python이 파일을 찾지 못합니다. 왜 이런 일이 일어나고 있는지 파악하기가 힘듭니다. 내 파이썬 파일은 다음과 같습니다SLURM에서 sbatch 명령을 사용할 때 로컬 파이썬 모듈을 가져 오는 방법
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
내가 모듈 main_nn
이 현재 디렉토리에 있다면 검사를 시도하고이 참이었다
#!/usr/bin/env python
#SBATCH --job-name=Python
print('hi')
import main_nn
내 slurm 덤프 파일의 출력은 그러나. 따라서 의심스러운 첫 번째 문제는 slurm 파일의 오류로 인해 내 스크립트의 위치가 path_to_project
이 아닌 "/home/slurm/slurmd/job3223398/slurm_script"
에있는 것이 었습니다. 따라서 나는 앞서 갔던 그 sbatch가에서 실행되는 스크립트에 펑키 일을 의미합니다 내 스크립트에서 그리고 놀랍게도 오히려 "/home/slurm/slurmd/job3223398/slurm_script"
에서보다 path_to_project
에서 실행되었다에 실행 된 위치를 확인할 수있는 라인
os.system('pwd')
추가 한 위치지만 다른 곳에서 생각하게 만듭니다. 이 경우 모듈이 내 제출 스크립트에서와 같은 위치에있는 python에서 가져 오기를 수행하는 방법은 무엇입니까? 패키지에 넣고 파이썬을 패키지/라이브러리로 생각하도록 강요합니까?
https://rcc.uchicago.edu/docs/tutorials/kicp-tutorials/running-jobs.html –
제출 디렉토리에 PYTHONPATH를 설정해 보았습니까? – damienfrancois
관련 : https://stackoverflow.com/questions/46718499/how-does-one-make-sure-that-the-python-submission-script-in-slurm-is-in-the-loca/46724189?noredirect = 1 # comment80425963_46724189 –