mod_wsgi在Django和venv中存在问题无法作为python模块加载 ModuleNotFoundError:没有名为“ django”的模块

问题描述

我正在尝试使用Apache和mod_wsgi设置Django项目,但无法正常工作。搜索了所有答案,但没有任何帮助。

  • python-home=/var/www/example.com/venv
  • python-path=/var/www/example.com/myproject
  • wsgi.py-/var/www/example.com/myproject/myproject/的位置

这是我的Apache配置。

Protocols h2 http/1.1
WsgiApplicationGroup %{GLOBAL}
WsgiDaemonProcess example python-home=/var/www/example.com/venv python-path=/var/www/example.com/myproject

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerAlias www.example.com
    ServerName example.com
    DocumentRoot /var/www/example.com/myproject/

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <Directory /var/www/example.com/myproject/myproject>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>
    
    Alias /favicon.ico /var/www/example.com/myproject/static/images/favicon/favicon.ico
    Alias /static /var/www/example.com/myproject/static
    
    <Directory /var/www/example.com/myproject/static>
        Require all granted
    </Directory>

    WsgiProcessGroup example
    WsgiScriptAlias / /var/www/example.com/myproject/myproject/wsgi.py

    RewriteEngine on
    RewriteCond %{SERVER_NAME} =example.com
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

这是错误

[28] [mpm_prefork:notice] [pid 959] AH00163: Apache/2.4.29 (Ubuntu) OpenSSL/1.1.1g mod_wsgi/4.5.17 Python/3.6 configured -- resuming normal operations
[53] [core:notice] [pid 959] AH00094: Command line: '/usr/sbin/apache2'
[03] [wsgi:error] [pid 969] [remote 1.2.3.4:58356] mod_wsgi (pid=969): Target Wsgi script '/var/www/example.com/myproject/myproject/wsgi.py' cannot be loaded as Python module.
[08] [wsgi:error] [pid 969] [remote 1.2.3.4:58356] mod_wsgi (pid=969): Exception occurred processing Wsgi script '/var/www/example.com/myproject/myproject/wsgi.py'.
[32] [wsgi:error] [pid 969] [remote 1.2.3.4:58356] Traceback (most recent call last):
[79] [wsgi:error] [pid 969] [remote 1.2.3.4:58356]   File "/var/www/example.com/myproject/myproject/wsgi.py",line 12,in <module>
[87] [wsgi:error] [pid 969] [remote 1.2.3.4:58356]     from django.core.wsgi import get_wsgi_application
[04] [wsgi:error] [pid 969] [remote 1.2.3.4:58356] ModuleNotFoundError: No module named 'django'

我尝试过的事情的清单

  • 使用sudo apt-get install libapache2-mod-wsgi-py3为py3编译经过验证的mod_wsgi。系统中没有其他mod_wsgi(ubuntu 18)。
  • venv是使用python 3(3.9)创建的,并且所有模块都是从myproject/requirements.txt安装的。
  • 激活了venv,并验证了Django通过迁移是否可以正常工作。

我在做什么错?从早上开始我一直在尝试这种方法,但我选择不了。请帮忙。

其他信息:

  • 我的ubuntu有3个python版本。认的Python 2,Python 3.6和Python 3.9(我创建了venv)。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)