Robię to na FedorzeBłąd: Nie można zaimportować ustawienia 'mysite.settings' po skonfigurowaniu virtualenv dla Django
Problem:
(sandbox)[[email protected] mysite]# django-admin.py runserver
Error: Could not import settings 'mysite.settings' (Is it on sys.path?): No module named mysite.settings
Konfiguracja virtualenv
mkdir pythonenv # that's the /home/yeukhon/pythonenv/*.*
cd pythonenv
virtualenv --no-site-packages --distribute sandbox
Zainstaluj Django
pip install -E sandbox django
# changing mode of /home/yeukhon/pythonenv/sandbox/bin/django-admin.py to 755
# Successfully installed django
Under/home/yeukhon/pythonenv/piaskownicy
bin include lib mysite
Pod lib
You have /lib/python2.7/site-packages/django/*.*
Tworzenie projektu jest w porządku
(sandbox)[[email protected] sandbox]# django-admin.py startproject mysite
# the path is now /home/yeukhon/pythonenv/sandbox/mysite/*.*
nie można uruchomić serwer
django-admin.py runserver
Error: Could not import settings 'mysite.settings' (Is it on sys.path?): No module named mysite.settings
Python Shell pod piaskownicy (zgodnie z tym przewodnikiem: How to troubleshoot - ImportError: Could not import settings 'mysite.settings' when deploying django?)
(sandbox)[[email protected] 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 "<stdin>", line 1, in <module>
ImportError: No module named mysite.settings
>>> setup_environ(mysite.settings)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
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'
Co muszę zrobić, aby rozwiązać ten problem? Dziękuję za Twój czas.
EDIT
Dzięki za odpowiedzi.
Próbowałem następujące:
(sandbox)[[email protected] mysite]# export PYTHONPATH="/home/yeukhon/pythonenv/sandbox/"
(sandbox)[[email protected] mysite]# export PYTHONPATH="/home/yeukhon/pythonenv/"
(sandbox)[[email protected] mysite]# deactivate
[[email protected] mysite]# source ../bin/activate
(sandbox)[[email protected] 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'.....]
Jest teraz na ścieżce Pythona. Ale nadal nie mogę uruchomić serwera.
Scentralizowane Django projektu
Tak. To dobra sugestia. Więc przypuszczam, że wszystko, co muszę zrobić, to "stworzyć katalog o nazwie mydjango, a następnie tworzyć projekty w mydjango". Ale jakie polecenia należy zmienić/dodać? Jestem gotów uczyć się dobrych praktyk.
Dziękuję bardzo.
Solution (Dodaj do zmiennej środowiskowej)
PYTHONPATH=$PYTHONPATH:path-to-your-directory
# PYTHONPATH=$PYTHONPATH:/home/yeukhon/pythonenv/sandbox/
Pratt. Dziękuję Ci bardzo za Twój czas. Właśnie dodałem ścieżkę do sys.path. Zobacz moją edycję. Może dodałem nieprawidłowo? Brak szczęścia. Ale dziękuję. – CppLearner
Nie można po prostu dodać go do 'sys.path'. To stworzyło środowisko uruchomieniowe. Musi znajdować się w zmiennej środowiskowej 'PYTHONPATH'. –
Masz rację. Musiałem PYTHONPATH = $ PYTHONPATH:/home/yeukhon/pythonenv/sandbox /. Dzięki. – CppLearner