2012-04-08 11 views
3

Ich habe Schwierigkeiten, Dokumente zu finden, die Pythons erwartetes Symlink-Verhalten beschreiben.Beachtet Python Symlinks?

Ich habe versucht, es selbst zu testen, aber ich bekomme seltsame Ergebnisse - manchmal scheint es für eine Weile zu funktionieren, dann hört auf zu arbeiten.

Wie auch immer, ich habe eine Situation, in der MoinMoin seine Datendateien und Plugin-Module im selben Verzeichnis hält, aber ich muss die Datendateien außerhalb meines Git-Repository aufbewahren (ich verwende OpenShift PaaS). Deshalb möchte ich diesen Symlink erstellen:

~/data/plugins/theme/-> ~/repo/plugins/theme/

Sollte ich erwarten, dass dies zu arbeiten?

Antwort

10

Sollte funktionieren gut - Symlinks werden auf der Betriebssystemebene behandelt, was bedeutet, solange Python nicht versucht zu bestimmen, ob etwas ein Symlink ist oder nicht, sollte ein open darauf öffnen nur die Datei, auf die es zeigt.

Gibt es irgendetwas Bestimmtes, das nicht funktioniert? Was siehst du, wenn es aufhört zu arbeiten?

+0

Es scheint mein benutzerdefiniertes Thema zu umgehen und lädt den Standard. Ich frage mich, ob es darauf ankommt, wann der Symlink erstellt wird. Da es in einem Git Repo ist, ist der Symlink wahrscheinlich jedes Mal gebrochen, wenn er gedrängt wird. Wie auch immer, es ist gut zu wissen, dass das genau so sein sollte. – EddyR

+0

In anderen Worten sollte ich wahrscheinlich so etwas tun: git push -> Symlink neu erstellen -> Server neustarten (?) – EddyR

+2

Einige Anwendungen, insbesondere Web-Frameworks, können aktiv nach Symlinks suchen und sich weigern, ihnen aus Sicherheitsgründen zu folgen. Das hat nichts mit Python an sich zu tun. Es könnte zum Beispiel speziell ein MoinMoin-Verhalten sein (ich würde es nicht wissen), und es könnte Konfigurationsflags geben, um es auszuschalten. – alexis