Django: получение пути импортируемого модуля из views.py - PullRequest
2 голосов
/ 20 марта 2012

Я пытался выяснить, как последовательно получить абсолютный путь к каталогу одного из моих модулей, чтобы я мог открывать файлы в этом же каталоге, независимо от того, запускается ли модуль напрямую или импортируется откуда-тоеще.

Я просто неправильно понимаю, как работают os.path и _ file _, или в Django есть какая-то странность, которая вызывает это?

views.py:

def pathtest(request):
    return HttpResponse(mymodule.getpath())

mymodule.py:

def getpath():
    return os.path.realpath(__file__)

Ожидаемый результат:

/home/user/projects/myproject/mymodule/mymodule.py

Фактический результат:

/home/user/projects/myproject/views.py

Ответы [ 2 ]

1 голос
/ 20 марта 2012

Можете ли вы сделать это?

mymodule.py :

def getpath():
    os.path.abspath(os.path.dirname(__file__))
1 голос
/ 20 марта 2012

это не касается Django, модуль os является встроенным в python.

Вам не нужно реализовывать функцию getpath в модуле mymodule, это можно решить, просто импортировав модуль и получив от него атрибут __file__.

import mymodule
import os
print os.path.abspath(mymodule.__file__)

должно работать нормально

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...