Ошибка: не удалось импортировать настройки mysite.settings после настройки virtualenv для Django

Я делаю это в Fedora

Проблема:

(sandbox)[root@localhost mysite]# django-admin.py runserver
Error: Could not import settings 'mysite.settings' (Is it on sys.path?): No module named mysite.settings

Установить virtualenv

mkdir pythonenv           # that's the /home/yeukhon/pythonenv/*.*
cd pythonenv
virtualenv --no-site-packages --distribute sandbox

Установить Django

pip install -E sandbox django

#    changing mode of /home/yeukhon/pythonenv/sandbox/bin/django-admin.py to 755
#    Successfully installed django

В / home / yeukhon / pythonenv / sandbox

bin   include  lib  mysite

В lib

You have /lib/python2.7/site-packages/django/*.*

Создать проект можно

(sandbox)[root@localhost sandbox]# django-admin.py startproject mysite
# the path is now /home/yeukhon/pythonenv/sandbox/mysite/*.*

Не удается запустить сервер

django-admin.py runserver
Error: Could not import settings 'mysite.settings' (Is it on sys.path?): No module named mysite.settings

Python Shell в изолированной программной среде (следуя этому руководству: Как устранить неполадки - ImportError: не удалось импортировать настройки mysite.settings при развертывании django? )

(sandbox)[root@localhost mysite]# python
Python 2.7.2 (default, Oct 27 2011, 01:36:46) 
[GCC 4.6.1 20111003 (Red Hat 4.6.1-10)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> import os
>>> os.environ['DJANGO_SETTINGS_MODULE'] 
'mysite.settings'

>>> os.path.exists('/home')
True
>>> os.path.exists('/home/yeukhon/pythonenv/sandbox/mysite')
True
>>> os.path.exists('/home/yeukhon/pythonenv/sandbox/mysite/settings.py')
True
>>> from django.core.management import setup_environ
>>> import mysite.settings
Traceback (most recent call last):
  File "", line 1, in 
ImportError: No module named mysite.settings

>>> setup_environ(mysite.settings)
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'mysite' is not defined


>>> print sys.path
['', 
/home/yeukhon/pythonenv/sandbox/lib/python2.7/site-packages/distribute-0.6.14-py2.7.egg', 
'/home/yeukhon/pythonenv/sandbox/lib/python2.7/site-packages/pip-0.8.1-py2.7.egg', 
'/home/yeukhon/pythonenv/sandbox/lib/python27.zip',
'/home/yeukhon/pythonenv/sandbox/lib/python2.7',
'/home/yeukhon/pythonenv/sandbox/lib/python2.7/plat-linux2',
'/home/yeukhon/pythonenv/sandbox/lib/python2.7/lib-tk',
'/home/yeukhon/pythonenv/sandbox/lib/python2.7/lib-old',
'/home/yeukhon/pythonenv/sandbox/lib/python2.7/lib-dynload',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2',
'/home/yeukhon/pythonenv/sandbox/lib/python2.7/site-packages'

Что мне нужно сделать, чтобы исправить эту проблему? Спасибо за уделенное время.


РЕДАКТИРОВАТЬ

Спасибо за ответ.

Я пробовал следующее:

(sandbox)[root@localhost mysite]# export PYTHONPATH="/home/yeukhon/pythonenv/sandbox/"
(sandbox)[root@localhost mysite]# export PYTHONPATH="/home/yeukhon/pythonenv/"
(sandbox)[root@localhost mysite]# deactivate
[root@localhost mysite]# source ../bin/activate
(sandbox)[root@localhost mysite]# django-admin.py runserver
Error: Could not import settings 'mysite.settings' (Is it on sys.path?): No module named mysite.settings

>>> sys.path
['',.... '/home/yeukhon/pythonenv'.....]

Теперь он находится на пути Python. Но я все еще не могу запустить сервер.

Централизованный проект Django

Да. Хорошее предложение. Итак, я полагаю, что все, что мне нужно сделать, это «создать каталог с именем mydjango, а затем создавать проекты в mydjango». Но какие команды нужно изменить / добавить? Я хочу научиться хорошей практике.

Большое спасибо.


Решение (Добавить в переменную среды)

PYTHONPATH=$PYTHONPATH:path-to-your-directory

# PYTHONPATH=$PYTHONPATH:/home/yeukhon/pythonenv/sandbox/

5
задан Community 23 May 2017 в 10:24
поделиться