Проблема с os.readlink()
заключается в том, что он разрешит только один шаг ссылки. Мы можем иметь ситуацию, когда A
ссылается на другую ссылку B
, а B
связь висит.
$ ln -s /tmp/example/notexist /tmp/example/B
$ ln -s /tmp/example/B /tmp/example/A
$ ls -l /tmp/example
A -> /tmp/example/B
B -> /tmp/example/notexist
Теперь в Python os.readlink
дает вам первую цель.
>>> import os
>>> os.readlink('A')
'/tmp/example/B'
Но в большинстве случаев я предполагаю, что нас интересует разрешенный путь. Таким образом, pathlib
может помочь здесь:
>>> from pathlib import Path
>>> Path('A').resolve()
PosixPath('/tmp/example/notexist')
Для более старых версий Python:
>>> os.path.realpath('A')
'/tmp/example/notexist'
Запустили ту же команду Composer, используя уже установленное приложение Git Bash, и это сработало.
Git Bash можно найти в меню Windows / приложения.