簡體   English   中英

ImportError:無法導入設置'mysite.settings'(是否在sys.path上?):沒有名為mysite.settings的模塊

[英]ImportError: Could not import settings 'mysite.settings' (Is it on sys.path?): No module named mysite.settings

編輯以嘗試和第一個答案進行故障排除。

現在我被禁止了403。 這就是我所擁有的:

<VirtualHost ip:80>
    ServerAdmin admin
    ServerName name
WSGIScriptAlias / /home/django/mysite/mysite/wsgi.py

<Directory /home/django/mysite/mysite>
<Files wsgi.py>
     Require all granted
</Files>
</Directory>
</VirtualHost>

我有一個用戶創建“django”/ home / django,所有子目錄都擁有“django”的權限。 這應該是怎么回事,對嗎?

我正在運行django 1.6.2

/ home / django包含mysite,'/ home / django / mysite'包含manage.py。 / home / django / mysite / mysite / contains,init,urls和wsgi.py.

wsgi.py包含:

import os
import sys
sys.path.insert(0,'/home/django/mysite')

os.environ["DJANGO_SETTINGS_MODULE"] =  "mysite.settings"

# NOTICE: the following may only work well in django version 1.5 1.6
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

我究竟做錯了什么? 為什么我被禁止? :( wsgi.py需要是用戶/組apache?

如果重要,服務器版本:Apache / 2.2.15

它可能與mod_userdir.c有關嗎?

我通常使用mod_wsgiwsgi.py編寫它

*.conf配置(Apache版本> = 2.4):

<VirtualHost *:80>
        ServerName example.com
        ServerAdmin example@example.com

        Alias /media/ /home/tu/blog/media/
        Alias /static/ /home/tu/blog/collected_static/

        <Directory /home/tu/blog/media>
                Require all granted
        </Directory>

        <Directory /home/tu/blog/collected_static>
                Require all granted
        </Directory>

        WSGIScriptAlias / /home/tu/blog/blog/wsgi.py

        <Directory /home/tu/blog/blog>
        <Files wsgi.py>
                Require all granted
        </Files>
        </Directory>
</VirtualHost>

如果您使用Apache 2.2使用

Order allow,deny
Allow from all

代替

Require all granted

wsgi.py(取決於你的django版本)

import os
import sys
sys.path.insert(0,'/path/to/project/')

os.environ["DJANGO_SETTINGS_MODULE"] =  "project.settings"

# NOTICE: the following may only work well in django version 1.5 1.6
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

也就是說,將您的django項目視為python包, sys.path用於告訴python項目所在的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM