Python os: [Errno 13] В доступе отказано - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь настроить сеть глубокого обучения (https://github.com/MIC-DKFZ/nnUNet) для работы с моим собственным набором данных, и у меня возникают проблемы с путями. Я использовал несколько подходов, чтобы определить мои пути. Авторы импортируют следующие пакеты для этой проблемы:

import os

from batchgenerators.utilities.file_and_folder_operations import maybe_mkdir_p, join

При этом я пробовал следующие строки отдельно:

base = os.environ["nnUNet_base"]

base = join("Tortuosity", "nnUNet_base")

base = "Tortuosity/nnUNet_base"

У меня есть каталог nnUNet_base внутри каталога Tortuosity. При первом подходе кажется, что он неправильно регистрирует каталог (я спрашиваю print("base =", base), а взамен я получаю None. Для второго и третьего подходов я получаю следующую ошибку:

Traceback (most recent call last):
  File "experiment_planning/plan_and_preprocess_task.py", line 18, in <module>
    from nnunet.paths import base,splitted_4d_output_dir, cropped_output_dir, preprocessing_output_dir, raw_dataset_dir, network_training_output_dir
  File "/home/pere/anaconda3/envs/nnunet_env/nnUNet/nnunet/paths.py", line 51, in <module>
    maybe_mkdir_p(splitted_4d_output_dir)
  File "/home/pere/anaconda3/envs/nnunet_env/lib/python3.6/site-packages/batchgenerators/utilities/file_and_folder_operations.py", line 40, in maybe_mkdir_p
    os.mkdir(os.path.join("/", *splits[:i+1]))
PermissionError: [Errno 13] Permission denied: '/nnUNet_base'

Я не знаю, как хабилитировать разрешения в этом случае. Пожалуйста, помогите, что я должен сделать, чтобы эффективно определить пути для моего случая? Я работаю на виртуальной машине с Ubuntu 16.04 в Ма c.

Спасибо!

1 Ответ

0 голосов
/ 09 января 2020

Ошибка говорит об этом:

os.mkdir(os.path.join("/", *splits[:i+1]))

Это означает, что путь находится в / а не в вашем домашнем каталоге. Исправление, которое просто использует абсолютный путь к нему, написано в комментариях n unet.

base = "/home/pere/Tortuosity/nnUNet_base"

Если Tortuosity находится непосредственно в вашей домашней папке.

...