Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django myproject的wsgi.py无法读取settings.py_Django_Apache_Python 3.x_Centos_Mod Wsgi - Fatal编程技术网

Django myproject的wsgi.py无法读取settings.py

Django myproject的wsgi.py无法读取settings.py,django,apache,python-3.x,centos,mod-wsgi,Django,Apache,Python 3.x,Centos,Mod Wsgi,当我用apache打开浏览器时,出现了一个错误 ImportError: No module named myproject.settings 我的操作系统是centOS7。 下面的代码就是我做的 $ cd $ git clone git://github.com/yyuu/pyenv.git ./.pyenv $ git clone git://github.com/yyuu/pyenv-virtualenv.git ./.pyenv/plugins/pyenv-virtualenv $ c

当我用apache打开浏览器时,出现了一个错误

ImportError: No module named myproject.settings
我的操作系统是centOS7。 下面的代码就是我做的

$ cd
$ git clone git://github.com/yyuu/pyenv.git ./.pyenv
$ git clone git://github.com/yyuu/pyenv-virtualenv.git ./.pyenv/plugins/pyenv-virtualenv
$ cat << 'EOF' >> ~/.bashrc
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
EOF
$ exec $SHELL -l
$ pyenv install --list
$ pyenv install 3.5.1
$ pyenv versions
$ pyenv rehash
$ python --version  # 2.7.5
$ pyenv local 3.5.1
$ python --version  # 3.5.1
$ sudo yum -y install mod_wsgi
$ pip install uwsgi  # 2.0.12
$ pip install django  # 1.9.1

$ mkdir dj
$ cd dj
$ django-admin.py startproject myproject
$ cd myproject
$ python manage.py startapp myapp
$ python manage.py runserver  # it works
$ cd myproject
$ python wsgi.py
Traceback (most recent call last):
  File "wsgi.py", line 16, in <module>
    application = get_wsgi_application()
  File "/home/jap/.pyenv/versions/3.5.1/lib/python3.5/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application
    django.setup()
  File "/home/jap/.pyenv/versions/3.5.1/lib/python3.5/site-packages/django/__init__.py", line 17, in setup
    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
  File "/home/jap/.pyenv/versions/3.5.1/lib/python3.5/site-packages/django/conf/__init__.py", line 55, in __getattr__
    self._setup(name)
  File "/home/jap/.pyenv/versions/3.5.1/lib/python3.5/site-packages/django/conf/__init__.py", line 43, in _setup
    self._wrapped = Settings(settings_module)
  File "/home/jap/.pyenv/versions/3.5.1/lib/python3.5/site-packages/django/conf/__init__.py", line 99, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/home/jap/.pyenv/versions/3.5.1/lib/python3.5/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 944, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 956, in _find_and_load_unlocked
ImportError: No module named 'myproject'

$ ls -l dj/myproject/
-rw-rw-r-- 1 jap jap    0  1月 22 21:09 __init__.py
-rw-r--r-- 1 jap jap 3072  1月 22 20:55 db.sqlite3
-rwxrwxr-x 1 jap jap  252  1月 22 20:55 manage.py
drwxrwxr-x 3 jap jap  116  1月 22 20:55 myapp
drwxrwxr-x 3 jap jap  114  1月 22 21:19 myproject

$ ls -l dj/myproject/myproject/
-rw-rw-r-- 1 jap jap    0  1月 22 20:55 __init__.py
drwxrwxr-x 2 jap jap  118  1月 22 20:55 __pycache__
-rw-rw-r-- 1 jap jap 3175  1月 22 20:55 settings.py
-rw-rw-r-- 1 jap jap  765  1月 22 20:55 urls.py
-rw-rw-r-- 1 jap jap  395  1月 22 20:55 wsgi.py

$ cat dj/myproject/myproject/wsgi.py
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
application = get_wsgi_application()
$cd
$git克隆git://github.com/yyuu/pyenv.git ./.pyenv
$git克隆git://github.com/yyuu/pyenv-virtualenv.git ./.pyenv/plugins/pyenv virtualenv
$cat>~/.bashrc
export PYENV_ROOT=“$HOME/.PYENV”
导出路径=“$PYENV_根/bin:$PATH”
求值“$(pyenv init-”
EOF
$exec$SHELL-l
$pyenv安装--列表
$pyenv安装3.5.1
$pyenv版本
$pyenv rehash
$python—版本#2.7.5
$pyenv本地3.5.1
$python—版本#3.5.1
$sudo yum-y安装mod_wsgi
$pip安装uwsgi#2.0.12
$pip安装django#1.9.1
$mkdir dj
$cd-dj
$django-admin.py startproject myproject
$cd myproject
$python manage.py startapp myapp
$python manage.py runserver#它可以工作
$cd myproject
$python wsgi.py
回溯(最近一次呼叫最后一次):
文件“wsgi.py”,第16行,在
application=get\u wsgi\u application()
文件“/home/jap/.pyenv/versions/3.5.1/lib/python3.5/site packages/django/core/wsgi.py”,第13行,在get_wsgi_应用程序中
django.setup()
文件“/home/jap/.pyenv/versions/3.5.1/lib/python3.5/site packages/django/_init__.py”,第17行,在安装程序中
配置日志记录(settings.logging\u CONFIG,settings.logging)
文件“/home/jap/.pyenv/versions/3.5.1/lib/python3.5/site packages/django/conf/_init__.py”,第55行,在__
自我设置(名称)
文件“/home/jap/.pyenv/versions/3.5.1/lib/python3.5/site packages/django/conf/_init__.py”,第43行,在安装程序中
自包装=设置(设置模块)
文件“/home/jap/.pyenv/versions/3.5.1/lib/python3.5/site packages/django/conf/_init__.py”,第99行,在_init中__
mod=importlib.import\u模块(自我设置\u模块)
文件“/home/jap/.pyenv/versions/3.5.1/lib/python3.5/importlib/\uuu init\uuuu.py”,第126行,在导入模块中
return _bootstrap._gcd_import(名称[级别:],包,级别)
文件“”,第986行,在_gcd_import中
文件“”,第969行,在“查找”和“加载”中
文件“”,第944行,在“查找”和“加载”中解锁
文件“”,第222行,在已删除帧的调用中
文件“”,第986行,在_gcd_import中
文件“”,第969行,在“查找”和“加载”中
文件“”,第956行,在“查找”和“加载”中解锁
ImportError:没有名为“myproject”的模块
$ls-l dj/myproject/
-rw-rw-r--1日本0日本1月 22时21分09分
-rw-r--r--1日本日3072 1月 22 20:55 db.sqlite3
-RWXR-x 1日本日本252 1月 22:20:55.py
drwxrwxr-x 3日本日116 1月 22:20:55 myapp
drwxrwxr-x 3日本日114 1月 22:21:19我的项目
$ls-l dj/myproject/myproject/
-rw-rw-r--1日本0日本1月 22:20:55开始
drwxrwxr-x 2日本日118 1月 22时20分55分__
-rw-rw-r--1日日本3175 1月 22 20:55 settings.py
-rw-rw-r--1日日本7651月 22:20:55 url.py
-rw-rw-r--1日日本3951月 22:20:55 wsgi.py
$cat dj/myproject/myproject/wsgi.py
导入操作系统
从django.core.wsgi导入获取\u wsgi\u应用程序
setdefault(“DJANGO\u设置\u模块”、“myproject.SETTINGS”)
application=get\u wsgi\u application()
我根本没有更改settings.py,因此该文件是默认文件。 如果有人给我任何建议,我将不胜感激。 多谢各位

这是我的apacheconf文件

$ cd /home
$ setfacl -m u:apache:--x jap
# setenforce 0
$ echo "Include /etc/httpd/conf/django.conf" >> /etc/httpd/conf/httpd.conf
$ cat /etc/httpd/conf/django.conf

    LoadModule wsgi_module modules/mod_wsgi.so
    WSGIScriptAlias /wsgi /home/jap/dj/myproject/myproject/wsgi.py
    WSGIPythonPath /home/jap/dj/myproject
    WSGIPythonPath /home/jap/.pyenv/versions/3.5.1/lib/python3.5/site-packages

    <Directory /home/jap/dj/myproject/myproject>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>
$cd/home
$setfacl-mu:apache:--xjap
#设置强制执行0
$echo“Include/etc/httpd/conf/django.conf”>>/etc/httpd/conf/httpd.conf
$cat/etc/httpd/conf/django.conf
LoadModule wsgi_modules/mod_wsgi.so
WSGIScriptAlias/wsgi/home/jap/dj/myproject/myproject/wsgi.py
WSGIPythonPath/home/jap/dj/myproject
WSGIPythonPath/home/jap/.pyenv/versions/3.5.1/lib/python3.5/site-packages
要求所有授权

我不认为Apache连接了几个WSGIPythonPath定义,最后一个将覆盖以前的定义。请尝试将所有路径放在一行中:

WSGIPythonPath /home/jap/dj/myproject:/home/jap/.pyenv/versions/3.5.1/lib/python3.5/site-packages

我不认为Apache连接了几个WSGIPythonPath定义,最后一个将覆盖以前的定义。请尝试将所有路径放在一行中:

WSGIPythonPath /home/jap/dj/myproject:/home/jap/.pyenv/versions/3.5.1/lib/python3.5/site-packages

嗨,托马斯·威奇。谢谢你的回答。似乎我可以解决mod_wsgi和apache之间关于这个问题的联系。尽管如此,我仍在与另一个错误作斗争。哈哈。无论如何,非常感谢。嗨,托马斯·威奇。谢谢你的回答。似乎我可以解决mod_wsgi和apache之间关于这个问题的联系。尽管如此,我仍在与另一个错误作斗争。哈哈。无论如何,非常感谢你。