关于Apache的Django 1.11.5,mod_wsgi给出了ImportError:没有名为site的模块

时间:2017-09-29 21:52:54

标签: django apache mod-wsgi importerror updating

[Fri Sep 29 14:46:35.808072 2017] [wsgi:info] [pid 35637] mod_wsgi (pid=35697): Process 'swpdoc' has died, deregister and restart it.
[Fri Sep 29 14:46:35.808113 2017] [wsgi:info] [pid 35637] mod_wsgi (pid=35697): Process 'swpdoc' terminated by signal 1
[Fri Sep 29 14:46:35.808116 2017] [wsgi:info] [pid 35637] mod_wsgi (pid=35697): Process 'swpdoc' has been deregister`enter code here`ed and will no longer be monitored.
[Fri Sep 29 14:46:35.808944 2017] [wsgi:info] [pid 35699] mod_wsgi (pid=35699): Starting process 'swpdoc' with uid=48, gid=48 and threads=15.
[Fri Sep 29 14:46:35.809868 2017] [wsgi:info] [pid 35699] mod_wsgi (pid=35699): Python home /var/www/swpdoc/venswpdoc.
[Fri Sep 29 14:46:35.809895 2017] [wsgi:info] [pid 35699] mod_wsgi (pid=35699): Initializing Python.
ImportError: No module named site

WSGIScriptAlias / /var/www/swpdoc/swpdocs/swpdoc/wsgi.py
<Directory /var/www/swpdoc/swpdocs/swpdoc>
 <Files wsgi.py>
      Require all granted
  </Files>
</Directory>
WSGIDaemonProcess swpdoc python-home=/var/www/swpdoc/venswpdoc  python-
path=/var/www/swpdoc/swpdocs
WSGIProcessGroup swpdoc
WSGIApplicationGroup %{GLOBAL}

  [root@mrsblweb21548 modules]# ldd mod_wsgi.so
    linux-vdso.so.1 =>  (0x00007ffdd95fe000)
    libpython2.7.so.1.0 => /lib64/libpython2.7.so.1.0 (0x00007f1747989000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f174776d000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f1747568000)
    libutil.so.1 => /lib64/libutil.so.1 (0x00007f1747365000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f1747063000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f1746ca0000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f1747f9d000)

如果我使用django 1.9.5的项目。它正在寻找并更新django到更新的版本,给出了这个错误。有人帮忙吗?

更新:      更改了虚拟环境目录的权限,现在正在获取         权限错误:      [9月29日星期五19:12:35.371053 2017] [wsgi:warn] [pid 33023](13)许可          否认:mod_wsgi(pid = 33023):无法统计Python主页        在/ var / WWW / swpdoc / venswpdoc。 Python解释器可能无法实现            正确初始化。验证提供的路径和访问权限             整个路径的权限。

2 个答案:

答案 0 :(得分:0)

通常由于您尝试使mod_wsgi使用Python虚拟环境来使用不同版本的Python而不是编译mod_wsgi。

检查为哪个版本的Python mod_wsgi编译。

指出您的虚拟环境创建的Python版本。

答案 1 :(得分:0)

通常,您只需要将根应用程序路径添加到&#34; python-path&#34;然后它就可以识别项目中的所有应用程序(我假设&#34; site&#34;是一个你项目中的应用程序)。因此,您需要在配置文件中替换此行:

WSGIDaemonProcess swpdoc python-path=/var/www/swpdoc

如果您使用的是virtualenv,可以使用以下行添加virtualenv包:

WSGIDaemonProcess swpdoc python-path=/var/www/swpdoc:/var/www/swpdoc/env/lib/python3.4/site-packages

您只需要替换virtualenv中安装的python版本。

此外,每次更新Django时,都需要查看发行说明https://docs.djangoproject.com/en/1.11/releases/1.11/