Путь к текущему файлу зависит от того, как я выполняю программу

Это моя программа Python:

#!/usr/bin/env python

import os

BASE_PATH = os.path.dirname(__file__)
print BASE_PATH

Если я запустил это с помощью python myfile.py, он печатает пустую строку. Если я запустил его с помощью myfile.py, он напечатает правильный путь. Почему это? Я использую Windows Vista и Python 2.6.2.

Ответы

Ответ 1

Это просто безобидная причуда; вы можете скомпенсировать, используя os.path.abspath(__file__), см. документы

Ответ 2

os.path.normpath(os.path.join(os.getcwd(),os.path.dirname(__file__)))

Ответ 3

Во многих случаях лучше использовать:

os.path.dirname(sys.argv[0])