2012-05-26 4 views
6

Ich habe eine Anwendung in Python und Pyside entwickelt. Ich habe es auf Linux-Maschine entwickelt. Jetzt möchte ich es auf Windows-Rechner bereitstellen. Hier ist das Problem der Pfad. In Linux wird ein Schrägstrich (/) als Trennzeichen verwendet, aber Windows verwendet einen umgekehrten Schrägstrich (\) als Trennzeichen.Wie forward Schrägstrich Problem im Pfad auf Windows in Python zu beheben?

Also, unter Windows funktionieren alle Pfade nicht. Es gibt mehrere Wege in der Anwendung (für Sheet, Bilder, log etc.)

Es ist schwierig, alle Wege zu ändern, da die meisten Wege sind schwer Code wie:

rootPath()+'/static/images/add.png' #rootPath return os.path... 

Beispiel:

colorPickerBtnStyle = 'background:url(' + rootPath() + '/static/images/color_icon.png);background-repeat: no-repeat;background-position:center center;' 

Gibt es irgendwelche Arbeit für dieses Problem.

+11

Wann hörte Windows auf, entweder "/" oder "\" in Pfaden zu akzeptieren? Es ist ihnen seit DOS erlaubt. – stark

+3

Das Beispiel sieht aus wie CSS, wo Sie auch unter Windows immer Vorwärts Schrägstriche verwenden sollten, auch wenn die referenzierte Datei lokal ist: http://blogs.msdn.com/b/ie/archive/2006/12/06/file -uris-in-windows.aspx – Thomas

+0

Es ist css in der Desktop-Anwendung mit qt/pyside – anils

Antwort

13

os.path.join() wird die richtige Art von Schrägstrich auf der rechten Plattform verwenden.

+0

In diesem Fall müssen alle Pfade aktualisiert werden. – anils

+2

Ja. Das ist es, wofür Sie sich beim Hardcoding anmelden :) – Thomas

+0

Das Problem wurde gelöst, indem find and replace verwendet und die Funktion assetPath hinzugefügt wurde, die den Image-Pfad und Pfad mit os.path.join() zurückgibt. Thak du Thomas !!! – anils

12

Verwenden Sie os.sep, anstatt die Schrägstriche explizit zu schreiben.