У меня есть исполняемый python script, который существует в каталоге "scripts", и там есть символическая ссылка на этот script (используемый для запуска файла) в корневом каталоге. Что-то вроде:
.
├── scripts
│ ├── const.py
│ ├── fops.py
│ ├── i_build.py
│ └── i_Props.ini
└── build_i -> scripts/i_build.py
Я хотел бы иметь возможность запускать/запускать мои скрипты с помощью:
python build_i
В корневом каталоге. I_build.py script попытается открыть i_Props.ini и сделать некоторую магию, основанную на том, что там.
Проблема заключается в том, что при запуске i_build.py script через символическую ссылку в корневом каталоге i_build.py script будет выглядеть в корневом каталоге для других файлов (а не в каталоге /scripts, где i_build.py).
Файл i_build.py имеет расположение файла реквизита как:
PROP_FILE = "i_Props.ini"
и пытается открыть это, а затем не удается. Я не хочу жестко указывать путь по понятным причинам.
Быстрое добавление теста os.getcwd()
в основной файл подтверждает мои подозрения, что он считает, что CWD является корневым каталогом, а проверка __file__
говорит о том, что это символическая ссылка ( "build_i" ).
Есть ли что-нибудь, что я могу сделать, чтобы python использовал назначение символа как для имени __file__
и CWD?