Давайте предположим, что структура файла (упрощенный) выглядит следующим образом:Python импорт не удается (в Слерме среде)
> some_script.py
> +extra_directory/
> ++ __init__.py
> ++ extra_script.py
В моем питоне файл some_script.py
У меня есть импорт, который выглядит следующим образом:
from extra_directory.extra_script import extra_class
Это нормально работает на моем рабочем столе.
Однако, когда я запускаю это на кластере в Slurm среде я всегда получаю эту ошибку:
Traceback (most recent call last): File "/work/var/slurmd/state.node253.d/job17281/slurm_script", line 2, in from distributions.convert_to_distribution import DistributionConverter as DC ImportError: No module named distributions.convert_to_distribution
Если материал распределения является реальным именем extra_directory примера.
Любые идеи?
EDIT:
Чтобы прояснить мою ситуацию: я на самом деле есть __init__.py
скрипты в каждом каталоге (просто забудьте упомянуть об этом здесь). Тем не менее, импорт по-прежнему не удается.
Моего текущего обходным путем является добавление абсолютного пути в моих сценариях:
sys.path.append("/absolute/path/to/extra_directory")
вы уверены ваш скрипт запускается в каталоге вы предполагаете, что начинается? Как выглядит заголовок сценария? – damienfrancois