0

重複の可能性:
os.path.dirname(__file__) は空を返します

ここに私のコードがあります:

def GetAppPath():
    application_path = None
    if getattr(sys, 'frozen', False):
        application_path = os.path.dirname(sys.executable)
    elif __file__:
        application_path = os.path.dirname(__file__)
    return application_path

Windows では完全に動作しますが、Debian では空の文字列を返します。何が問題になる可能性がありますか?

Python 2.7.3、Debian 6.0.5 を使用しています

4

2 に答える 2

1

__file__ が定義されていないか、正しく定義されていないようです.Debianテスト、Python 2.7.3rc2で動作します

    def GetAppPath(file):
        application_path = os.path.dirname(file)
        return application_path

GetAppPath('/etc/X11/xorg.conf') は '/etc/X11' を返します

于 2012-10-12T15:09:27.847 に答える
1

Ubuntu 12.04/python 2.7で動作します:

import os.path

print os.path.dirname(__file__)

/tmp/foo.py に保存してから実行します。

$ python /tmp/foo.py 
/tmp
于 2012-10-12T15:21:46.327 に答える