2012-05-26 9 views
6

Ho sviluppato un'applicazione in python e in campagna. L'ho sviluppato su Linux. Ora voglio distribuirlo su Windows Machine. Qui il problema è il percorso. In linux forward slash (/) usato come separatore ma windows usa la barra rovesciata (\) come separatore.Come risolvere il problema di slash in avanti in path su windows in python?

Quindi, su Windows tutti i percorsi non funzionano. Ci sono diversi percorsi in applicazione (per foglio di stile, immagini, log, ecc)

E 'difficile cambiare tutti i percorsi come la maggior parte dei sentieri sono codificare come:

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

Esempio:

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

C'è qualche soluzione per questo problema.

+11

Quando Windows ha smesso di accettare "/" o "\" nei percorsi? Sono consentiti da DOS. – stark

+3

L'esempio è simile al CSS, dove si dovrebbero sempre usare le barre oblique anche su Windows, anche se il file di riferimento è locale: http://blogs.msdn.com/b/ie/archive/2006/12/06/file -uris-in-windows.aspx – Thomas

+0

È il css utilizzato nell'applicazione desktop che utilizza qt/peek – anils

risposta

13

os.path.join() utilizzerà il tipo giusto di barra sulla piattaforma corretta.

+0

In questo caso tutti i percorsi devono essere aggiornati. – anils

+2

Sì. Questo è ciò che ti iscrivi quando cose hardcoding :) – Thomas

+0

Problema risolto usando find e replace e aggiunto la funzione assetPath che restituisce il percorso dell'immagine e il path build usando os.path.join(). Grazie Thomas !!! – anils