Известно, что
manage.py лежит в корневой папке проекта Django
PRJ_ROOT/
.
Я хочу сделать "запускалку" в одной из вложенных папок, например, в
PRJ_ROOT/bin/
.
Пишу "запускалку":
import os
import django.conf
# Определяю папку "запускалки" и иду на уровень выше из bin в PRJ_ROOT
_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '../'))
# Меняю рабочую директорию на корень PRJ_ROOT
os.chdir(_dir)
print _dir # Выводит PRJ_ROOT
print os.getcwd() # Выводит PRJ_ROOT
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')
django.setup()
И выдает ошибку, что не может импортировать модуль project.settings!
Если кладу "запускалку" вместе с
manage.py и убираю из нее
os.chdir()
, то "запускалка" работает нормально.
А почему из другой папки не работает??? Ведь
os.chdir()
устанавливается правильно - в корень проекта, там где и
manage.py лежит?