Django ModuleNotFoundError: No module named 'myProject'

Django ModuleNotFoundError: No module named 'myProject'

ModuleNotFoundError: No module named 'myProject' 错误,但我不知道原因。如果你告诉我,我很高兴。

・ CentOS 7.2
・ Python 3.6
・ Django 2.0
· 阿帕奇 2.4

我设置的虚拟环境如下

pip install virtualenv
mkdir xxx
cd xxx 
python3 -m venv xxx
source xxx/bin/activate
pip install mod_wsgi
mod_wsgi-express module-config
LoadModule wsgi_module "/home/username/myProject/myProject/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"
WSGIPythonHome "/home/username/myProject/myProject"

■ /etc/httpd/conf.d/django.conf

NameVirtualHost *:80
LoadModule wsgi_module /home/username/myProject/myProject/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so
WSGIPythonHome /home/username/myProject/myProject
WSGISocketPrefix /var/run/wsgi
<VirtualHost *:80>

  ServerName xxx.com
  DocumentRoot /home/username

  WSGIApplicationGroup %{GLOBAL}
  WSGIDaemonProcess xxx python-home=/home/username/myProject/myProject python-path=/home/username/myProject/myProject/lib/python3.6/site-packages
  WSGIProcessGroup xxx
  WSGIScriptAlias / /home/username/myProject/myProject/wsgi.py

  <Directory /home/username/myProject/myProject/static>
      Require all granted
  </Directory>

  <Directory /home/username/myProject/myProject>
      <Files wsgi.py>
          Require all granted
      </Files>
  </Directory>
</VirtualHost>

■ wsgi.py

import os,sys

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "xxx.settings")

application = get_wsgi_application()

阅读:

WSGIPythonHome 指令或 python-home 选项应指向 Python 虚拟环境的根目录。对于该虚拟环境,当 Python 为 运行 时,这应该与 sys.prefix 的值相同。

然后 WSGIPythonPath 指令或 python-path 选项将被设置为您的项目代码目录,其中存在 modules/packages,在您的情况下可能 /home/username/myProject

不要使用这些后面的选项指向 site-packages 目录,使用第一个选项指定虚拟环境的位置。

我会建议,因为你正在使用守护进程模式来添加:

WSGIRestrictEmbedded On

LoadModule 行之后。然后删除 WSGIPythonHomeWSGIPythonPath 并依赖 WSGIDaemonProcess 上的 python-homepython-path 选项。

顺便说一句,DJANGO_SETTINGS_MODULE 不会是 xxx.settings。您可能是指 myProject.settings.

此外,您的虚拟环境似乎是您的项目代码目录。如果是这样的话,真的不推荐。将虚拟环境创建为一个独立的子目录。不要将它与您的代码混在一起,因为这样就很难删除虚拟环境并重新创建它。