tôi đang làm điều này trên FedoraLỗi: Không thể nhập các thiết lập 'mysite.settings' sau khi thiết lập virtualenv cho Django
Vấn đề:
(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
Cài đặt virtualenv
mkdir pythonenv # that's the /home/yeukhon/pythonenv/*.*
cd pythonenv
virtualenv --no-site-packages --distribute sandbox
Cài đặt Django
pip install -E sandbox django
# changing mode of /home/yeukhon/pythonenv/sandbox/bin/django-admin.py to 755
# Successfully installed django
Dưới/home/yeukhon/pythonenv/sandbox
bin include lib mysite
Dưới lib
You have /lib/python2.7/site-packages/django/*.*
Tạo dự án là tốt
(sandbox)[[email protected] sandbox]# django-admin.py startproject mysite
# the path is now /home/yeukhon/pythonenv/sandbox/mysite/*.*
có thể không chạy máy chủ
django-admin.py runserver
Error: Could not import settings 'mysite.settings' (Is it on sys.path?): No module named mysite.settings
Python Shell dưới sandbox (theo hướng dẫn này: 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'
gì tôi cần phải làm gì để sửa chữa vấn đề này? Cảm ơn bạn đã dành thời gian.
EDIT
Cảm ơn đã phản ứng.
tôi thử như sau:
(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'.....]
Nó bây giờ đang trên con đường python. Nhưng tôi vẫn không thể chạy máy chủ.
trung Django Dự án
Yes. Đó là một gợi ý tốt. Vì vậy, tôi cho rằng tất cả những gì tôi cần làm là "tạo một thư mục có tên mydjango, sau đó tạo các dự án trong mydjango". Nhưng lệnh nào cần phải được thay đổi/thêm vào? Tôi sẵn sàng học tập tốt.
Cảm ơn bạn rất nhiều.
Solution (Thêm vào biến môi trường)
PYTHONPATH=$PYTHONPATH:path-to-your-directory
# PYTHONPATH=$PYTHONPATH:/home/yeukhon/pythonenv/sandbox/
Pratt. Cảm ơn vi đa danh thơi gian cho tôi. Tôi vừa thêm đường dẫn vào sys.path. Xem chỉnh sửa của tôi. Có lẽ tôi đã thêm không chính xác? Không may mắn. Cảm ơn bạn mặc dù. – CppLearner
Bạn không thể chỉ thêm nó vào 'sys.path'. Đó là tạo ra một thời gian chạy. Nó cần phải nằm trong biến môi trường 'PYTHONPATH' của bạn. –
Bạn nói đúng. Tôi đã phải PYTHONPATH = $ PYTHONPATH:/home/yeukhon/pythonenv/sandbox /. Cảm ơn. – CppLearner