2012-05-26 13 views
6

私はpythonとpysideでアプリケーションを開発しました。私はLinuxマシンでそれを開発しました。今私はWindowsマシンにそれを展開したい。ここで問題はパスです。セパレータとして使用されるLinuxのスラッシュ(/)では、ウィンドウはセパレータとしてバックスラッシュ(\)を使用します。PythonでWindows上のパスにスラッシュの問題を修正するにはどうすればいいですか?

Windowsでは、すべてのパスが機能しません。 (スタイルシート、画像、などをログ用)アプリケーション内の複数のパスがあります

そのパスのほとんどがそうであるようにすべてのパスを変更することが困難なハードコードのような:

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

例:

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

この問題の回避策はありますか?

+11

Windowsは、パスの "/"または "\"の受け入れをいつ中止しましたか?それはDOSから許されています。 – stark

+3

この例はCSSのように見えますが、参照されたファイルがローカルであっても、Windowsでも常にスラッシュを使用する必要があります。http://blogs.msdn.com/b/ie/archive/2006/12/06/file -uris-in-windows.aspx – Thomas

+0

qt/pysideを使用するデスクトップアプリケーションで使用されるCSS – anils

答えて

13

os.path.join()は、正しいプラットフォームで正しい種類のスラッシュを使用します。

+0

この場合、すべてのパスを更新する必要があります。 – anils

+2

はい。これは、ハードコーディング時にサインアップするものです:) – Thomas

+0

findとreplaceを使用して問題を解決し、os.path.join()を使用して画像パスとパスのビルドを返す関数assetPathを追加しました。 Thak you Thomas !!! – anils

12

スラッシュを明示的に書くのではなく、os.sepを使用してください。

関連する問題