Mit http://code.google.com/p/simpledms/source/detail?r=21 hab ich nun eine funktionierende Variante.
Im Grunde steckt alles hier drin: http://code.google.com/p/simpledms/sour ... svn21&r=21
Ist noch alles mit der Heißennadel gestrickt.
Da es einfach mit win32file.CreateSymbolicLink nicht funktionieren will, benutzte ich nun per subprocess das sysinternal tool junction.exe.
Das dumme ist nur, das man es selber runterladen muß. Entweder packt man es dann in den Pfad oder ändert die Konstante os2.JUNCTION_EXE
In simpledms wird der pfad einmalig abgefragt und in die Config gespeichert.
Von der API her, kann man nach dem import von meinem "os2" Modul, das normale os.symlink und os.link auch unter Windows verweden. Sie Beispielcode ganz unten in os.py
Was haltet ihr vom "monkey patch" ?
Warum os.link() nicht auch für Windows???
Wenig, vor allem, wenn der Code noch instabil ist. Monkey-Patching verbirgt Abhängigkeiten und führt so dazu, dass Code schlechter zu durchschauen ist. Außerdem solltest du das wenn überhaupt mit einer Abfrage der Versionsnummer von Python verbinden, um zu verhindern, dass du Standardattribute überschreibst, wenn Python irgendwann mal Symlinks unter Windows unterstützt.jens hat geschrieben:Was haltet ihr vom "monkey patch" ?
Ich würde eher eine zusätzliche Schicht einführen, die den Dateisystemzugriff noch weiter abstrahiert, und dort dann Symlink-Unterstützung für Windows implementieren, als direkt am os-Modul rumzupatchen.