как в kaggle сделать папку по умолчанию на 1 уровн...

Created on: February 21, 2026

Answered using GPT-5.2 Thinking by Chat01

Question

как в kaggle сделать папку по умолчанию на 1 уровне в среде исполнения?
То есть чтобы все, что было в /kaggle/input/models/renesta/lintbs/pytorch/default/1/ailint_diploma_starter
было как из под текущего уровня, то есть "/"

Thought

Explaining Kaggle folder setup

The user wants to set a top-level folder or make directories appear at root. In Kaggle, you can't change the root folder, but you can create symlinks or mount directories. Using os.chdir allows you to change the working directory, or symlink to make access paths shorter from the /kaggle/working directory.

Clarifying Kaggle directory setup and limitations

In Kaggle, the root directory "/" is system-level and can't be adjusted. While you can't map directories under /kaggle/input to "/", you can use os.chdir or the %cd command in Jupyter. If you want to work with large datasets, creating a symlink is better than copying files. However, note that you can't write to /kaggle/input.

Providing Kaggle directory solution in Russian

You can create a sy

Thought for 21s

Answer

В Kaggle “сделать так, чтобы глубокая папка стала корнем /” нельзя: / — это реальная корневая ФС контейнера, её не переопределить. Но есть 2 рабочих обходных варианта (обычно их и используют).

Вариант 1 — сменить текущую рабочую папку (чтобы пути были “как из текущего уровня”)

Тогда все относительные пути будут считаться от нужной директории.

В ноутбуке (Jupyter) — лучше так:

python
import os target = "/kaggle/input/models/renesta/lintbs/pytorch/default/1/ailint_diploma_starter" os.chdir(target) print("PWD =", os.getcwd())

Или магией:

python
%cd /kaggle/input/models/renesta/lintbs/pytorch/default/1/ailint_diploma_starter

Минус: содержимое не “появится” в /, просто вы будете внутри этой папки как в “дефолтной”.


Вариант 2 — сделать “псевдо-корень” в /kaggle/working через symlink (самый удобный)

/kaggle/input read-only, а /kaggle/working — место, где можно создавать ссылки/файлы.

2.1. Ссылка на папку целиком

bash
ln -s /kaggle/input/models/renesta/lintbs/pytorch/default/1/ailint_diploma_starter /kaggle/working/project ls -la /kaggle/working/project

Теперь можно работать как будто “рядом”:

  • файлы лежат в /kaggle/working/project/...
  • в браузере файлов слева это тоже будет выглядеть удобно.

2.2. Если прям нужно, чтобы файлы были “на верхнем уровне” working (как будто распакованы в .)

Можно насоздавать ссылки на содержимое:

bash
cd /kaggle/working for f in /kaggle/input/models/renesta/lintbs/pytorch/default/1/ailint_diploma_starter/*; do ln -s "$f" . done ls -la

Плюс: всё “как в текущей папке”.
Минус: если там много файлов/папок — верхний уровень засорится.


Что выбрать

  • Хотите просто, чтобы всё работало с относительными путямиВариант 1 (%cd / os.chdir)
  • Хотите, чтобы в file browser было “как будто на верхнем уровне” → Вариант 2 (symlink в /kaggle/working)

Если скажете, как именно вы потом обращаетесь к файлам (обучение модели, импорт модулей, конфиги с относительными путями и т.п.), подскажу самый “чистый” вариант под ваш кейс.

Question

Сделал через %, спасибо

Теперь пытаюсь

!python prepare_unified.py --out_dir data/unified
--use_juliet --use_devign --use_bigvul --use_megavul
--max_megavul 200000

но получаю

Traceback (most recent call last):
File "/usr/lib/python3.12/pathlib.py", line 1311, in mkdir
os.mkdir(self, mode)
FileNotFoundError: [Errno 2] No such file or directory: 'data/unified'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/kaggle/input/models/renesta/lintbs/pytorch/default/1/ailint_diploma_starter/prepare_unified.py", line 517, in <module>
main()
File "/kaggle/input/models/renesta/lintbs/pytorch/default/1/ailint_diploma_starter/prepare_unified.py", line 443, in main
ensure_dir(out_dir)
File "/kaggle/input/models/renesta/lintbs/pytorch/default/1/ailint_diploma_starter/prepare_unified.py", line 70, in ensure_dir
p.mkdir(parents=True, exist_ok=True)
File "/usr/lib/python3.12/pathlib.py", line 1315, in mkdir
self.parent.mkdir(parents=True, exist_ok=True)
File "/usr/lib/python3.12/pathlib.py", line 1311, in mkdir
os.mkdir(self, mode)
OSError: [Errno 30] Read-only file system: 'data'

Если что мне всю папку ты написал в другой ветке, так что сомневаюсь, что ошибка в коде.

Thought

Providing steps for running script in Kaggle

The user is in Kaggle, and they face issues with writing to the read-only /kaggle/input directory. I think I can suggest running from /kaggle/working and ensuring output directories are specified clearly. I'll provide steps to set the necessary directories, copy files, and set project environment variables for both bash and python cells.

Offering Kaggle script directory and symlink solutions

The user has two solutions for running scripts in Kaggle:
Option A: Keep the current working directory in input and specify an absolute output directory using --out_dir.
Option B: Copy the repo to /kaggle/working, change the directory, and run the script with out_dir.
I'll include code samples and a reminder that /kaggle/input is read-only.

Thought for 16s

Answer

Это как раз не баг кода, а особенность Kaggle: всё, что внутри /kaggle/input — read-only. А вы после %cd .../ailint_diploma_starter запускаете скрипт из read-only каталога, и он пытается создать data/unified рядом с собой, т.е. внутри /kaggle/input/..., поэтому и:

OSError: [Errno 30] Read-only file system: 'data'

Нужно писать выход в /kaggle/working (или /kaggle/temp).

Вариант A (самый простой): оставить скрипт в input, но out_dir сделать абсолютным в working

bash
!python /kaggle/input/models/renesta/lintbs/pytorch/default/1/ailint_diploma_starter/prepare_unified.py \ --out_dir /kaggle/working/data/unified \ --use_juliet --use_devign --use_bigvul --use_megavul \ --max_megavul 200000

(Можно и так: --out_dir /kaggle/working/unified.)

Вариант B (часто удобнее): скопировать проект в working и запускать там с относительными путями

bash
!cp -r /kaggle/input/models/renesta/lintbs/pytorch/default/1/ailint_diploma_starter /kaggle/working/ailint_diploma_starter %cd /kaggle/working/ailint_diploma_starter !python prepare_unified.py --out_dir data/unified \ --use_juliet --use_devign --use_bigvul --use_megavul \ --max_megavul 200000

Так у вас и data/... будет создаваться нормально, и любые другие относительные записи (логи/кэши/артефакты) тоже не упрутся в read-only.


Быстрая проверка, где вы находитесь

bash
!pwd !ls -ld .

Если путь начинается с /kaggle/input/... — туда писать нельзя.

Если после исправления вылетит следующая ошибка “read-only” уже на другом пути — скиньте текст, подскажу, какой ещё каталог скрипт пытается писать (иногда есть кэш/лог по умолчанию помимо --out_dir).

Share this Q&A