![](/img/trans.png)
[英]Django ModuleNotFoundError: No module named 'idoc' in Apache with mod_wsgi
[英]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.