首页 文章

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

提问于
浏览
0
[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到更新的版本,给出了这个错误 . 有人帮吗?

更新:更改了虚拟环境目录的权限,现在获得权限错误:[Fri Sep 29 19:12:35.371053 2017] [wsgi:warn] [pid 33023](13)权限被拒绝:mod_wsgi(pid = 33023):无法统计Python home / var / www / swpdoc / venswpdoc . Python解释器可能无法正确初始化 . 验证整个路径的提供路径和访问权限 .

2 回答

  • 0

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

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

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

  • 0

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

    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/

相关问题