Windows10环境下Apache2.4启动失败,提示encodings模块找不到求解决
解决方案
- 显式在Apache配置文件
httpd.conf中指定Python环境变量
即使系统环境变量中未配置PYTHONHOME和PYTHONPATH,mod_wsgi运行时也可能因找不到Python安装路径抛出encodings模块缺失错误。在LoadModule wsgi_module配置行前新增以下内容,路径替换为你本地Python 3.8的实际安装路径,注意使用正斜杠/作为路径分隔符:Define PYTHONHOME "C:/Python38" Define PYTHONPATH "C:/Python38;C:/Python38/Lib;C:/Python38/Lib/site-packages" SetEnv PYTHONHOME "${PYTHONHOME}" SetEnv PYTHONPATH "${PYTHONPATH}" - 校验mod_wsgi版本匹配性
你使用的Apache Haus 2.4 64位、Python 3.8 64位,对应的mod_wsgi必须是同编译器版本(Apache Haus一般为VC15/VC16编译)、同架构编译的二进制包,直接通过pip安装的mod_wsgi大概率和Apache编译环境不兼容,建议下载对应版本的预编译二进制包替换现有mod_wsgi.so文件。 - 开放Python目录访问权限
Apache服务默认以本地系统账户运行,需确保该账户有Python安装目录的读取、执行权限:右键Python 3.8安装文件夹→「属性」→「安全」→添加Everyone主体,授予「读取和执行」「列出文件夹内容」权限,应用到所有子文件夹及文件。 - 前台运行Apache排查报错
不要直接通过服务或httpd -k start后台启动,先进入Apache的bin目录,执行httpd.exe前台运行,报错会直接输出在命令行窗口,可快速定位配置问题。若前台运行无报错、窗口未自动退出,说明配置生效,再使用服务启动即可。 - 确认mod_wsgi加载路径正确
检查httpd.conf中LoadModule wsgi_module的路径配置,确保路径无中文、空格,mod_wsgi.so文件确实存放在对应路径下。
内容的提问来源于stack exchange,提问作者oishi_yamamoto
相关产品推荐
相关产品推荐

