mod_wsgi错误:ModuleNotFoundError:没有名为“ django”的模块

时间:2019-07-02 13:14:24

标签: django python-3.x apache mod-wsgi

我正在尝试在Ubuntu 18.04上使用Apache 2.4部署一个非常基本的Django应用程序,而不使用虚拟环境。执行wsgi.py时,找不到django模块。

我尝试在wsgi中设置sys.path,这是为000-default.conf定义不同配置设置的各种解决方案。将Apache的site-packages文件夹的所有权更改为www-data,但似乎无济于事。我可以使用virtualenv使其工作,但是对于生产服务器,我不想使用virtualenv。我可以在Python的命令行中导入django,没有任何问题。

以下是我的sample.tst.conf,如果已经使用a2ensite命令将其激活。

<code>
<VirtualHost *:80>

    ServerName sample.tst
    ServerAdmin webmaster@sample.tst
    DocumentRoot /var/www/html

    <Directory /home/raza/projects/sample/sample>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    WSGIDaemonProcess sample python-path=/home/raza/projects/sample
    WSGIProcessGroup sample

    WSGIScriptAlias / /home/raza/projects/sample/sample/wsgi.py

    <Location />
    WSGIProcessGroup sample
    </Location>

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

</VirtualHost>
<code>

如何解决此问题?我在这个问题上挣扎了一个多星期。

我是一位经验丰富的程序员,但是对Linux,python和Apache平台非常陌生,因此我可能会犯一些明显的错误。

我在Apache日志文件中收到以下错误:

[Tue Jul 02 18:05:22.458785 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51170] mod_wsgi (pid=12490): Target WSGI script '/home/raza/projects/sample/sample/wsgi.py' cannot be loaded as Python module.
[Tue Jul 02 18:05:22.458854 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51170] mod_wsgi (pid=12490): Exception occurred processing WSGI script '/home/raza/projects/sample/sample/wsgi.py'.
[Tue Jul 02 18:05:22.458916 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51170] Traceback (most recent call last):
[Tue Jul 02 18:05:22.459009 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51170]   File "/home/raza/projects/sample/sample/wsgi.py", line 12, in <module>
[Tue Jul 02 18:05:22.459037 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51170]     from django.core.wsgi import get_wsgi_application
[Tue Jul 02 18:05:22.459072 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51170] ModuleNotFoundError: No module named 'django'
[Tue Jul 02 18:05:22.490159 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51172] mod_wsgi (pid=12490): Target WSGI script '/home/raza/projects/sample/sample/wsgi.py' cannot be loaded as Python module.
[Tue Jul 02 18:05:22.490240 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51172] mod_wsgi (pid=12490): Exception occurred processing WSGI script '/home/raza/projects/sample/sample/wsgi.py'.
[Tue Jul 02 18:05:22.490297 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51172] Traceback (most recent call last):
[Tue Jul 02 18:05:22.490314 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51172]   File "/home/raza/projects/sample/sample/wsgi.py", line 12, in <module>
[Tue Jul 02 18:05:22.490318 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51172]     from django.core.wsgi import get_wsgi_application
[Tue Jul 02 18:05:22.490330 2019] [wsgi:error] [pid 12490] [remote 10.10.10.99:51172] ModuleNotFoundError: No module named 'django'

1 个答案:

答案 0 :(得分:1)

貌似django已安装到python2中(操作系统使用)。 python3附带了预安装的pip3软件包安装程序。 因此,使用“ sudo pip3 install django”命令将django安装到python3环境中。 pip只会将软件包安装到python2中。