0

os.walk を使用して相対パスを検索するコードに取り組んでいます。Pythonスクリプトとして実行すると問題はありませんが、exeに変換した後、相対パスが見つからないようです。現在のパスは正常に印刷されます。以下は、私が取り組んでいる現在のソリューションです。

if getattr(sys, 'frozen', False):
    currentPath = os.path.dirname(sys.executable)
    relativePath = os.path.join(currentPath,'/../../folder')
else:
    currentPath = inspect.stack()[0][1]
    relativePath = os.path.join(currentPath,'/../../folder')

for root, dirs, files in os.walk(relativePath):

relativePath をハードコーディングすると、exe が機能します。

relativePath = "D:/場所/../../フォルダー"

不足している exe に変換するときに参加する際に注意が必要なことはありますか?

4

1 に答える 1

1

よくわかりませんが、パスにバックスラッシュとスラッシュが混在している可能性があります。

作成するコードをrelativePath次のように変更してみてください。

relativePath = os.path.join(currentPath, '..', '..', 'folder')

これにより、正しいパスセパレーターを使用していることを確実に確認できます。

于 2012-09-26T18:06:26.270 に答える