繁体   English   中英

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

[英]mod_wsgi error: ModuleNotFoundError: No module named 'django'

我正在尝试在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'

看起来django已安装到python2中(由您的OS使用)。 python3附带了预安装的pip3软件包安装程序。 因此,使用“ sudo pip3 install django”命令将django安装到python3环境中。 pip只会将软件包安装到python2中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM