Самое простое решение - просто использовать пакетный скрипт вместо ярлыка.
Все, что ему нужно, это python C:\path\to\script\script.py
, и сценарий будет иметь правильный CWD.
По умолчанию при создании ярлыка в Windows свойство Start in:
задается для папки, в которой находится связанный файл.
Скрипт не знает о том, что он был вызван из ярлыка, не говоря уже о том, где этот ярлык находится.
Вы можете изменить свойство Start in:
ярлыка на путь к папке, в которой находится ярлык.
Тогда вы можете использовать os.getcwd()
, чтобы получить этот путь.
К сожалению, установка Start in:
в .
не работает.