Ich habe in eine seltsame Situation geraten, wo es verschiedene Python-Module (os
und stat
vs pathlib
) unterschiedlich identifiziert, wenn eine Datei ein Symlink ist oder nicht.Python 3 erkennt keine Symlinks über stat
ist zum Beispiel die python3
binäre nehmen lassen:
[email protected]:~$ ls -la /usr/bin/python3
lrwxrwxrwx 1 root root 9 Mar 23 2016 /usr/bin/python3 -> python3.5
Wie Sie, basierend auf dem Shell-Befehl oben sehen kann, ist es ein symbolischer Link.
Wenn ich das pathlib
Modul in Python eingeführt verwenden 3.4 wird diese erfolgreich als symbolische Verbindung identifiziert wird:
>>> from pathlib import Path
>>> Path('/usr/bin/python3').is_symlink()
True
Wenn nun statt pathlib
, verwende ich die os
und stat
Python-Modulen, die Datei wird nicht als symbolische Verbindung identifiziert: das in einem Docker Container über Docker für Mac
>>> import os
>>> import stat
>>> st_mode = os.stat('/usr/bin/python3').st_mode
>>> st_mode
33261
>>> stat.S_ISLNK(st_mode)
False
ich versuchte zunächst, und dann in einem normalen Ubuntu 16.04 und Ergebnisse sind die gleichen.
Eine Idee, warum das passieren könnte?
Danke!
Das ist erstaunlich, danke! – Paris