You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署Django应用时出现‘cannot import name _imaging’错误及mod_wsgi版本问题求助

解决 Django 导入 _imaging 失败的问题

看起来你遇到的这个 Django cannot import name _imaging 错误,核心原因已经被你定位到啦——mod_wsgi 是针对 Python 3.4 编译的,但你当前使用的是 Python 3.5。这种版本不匹配会导致 mod_wsgi 加载的是 Python 3.4 的库路径,而你的 Django 应用依赖的 Pillow(_imaging 是它的核心底层模块)是安装在 Python 3.5 环境里的,自然就会出现找不到模块的情况。

下面给你几个具体的解决步骤:

  • 重新编译 mod_wsgi 适配 Python 3.5
    这是最根本的解决方案。你需要先卸载现有不匹配的 mod_wsgi,再用 Python 3.5 的环境重新编译安装:

    1. 先移除旧的 mod_wsgi 模块(命令根据服务器系统调整,以 Apache 为例):
      sudo apt remove libapache2-mod-wsgi  # Debian/Ubuntu 系统
      # 若为源码安装,找到安装目录执行对应卸载脚本
      
    2. 用 Python 3.5 的 pip 安装适配版本的 mod_wsgi:
      python3.5 -m pip install mod_wsgi
      
    3. 按照安装完成后的提示,将 mod_wsgi 配置到 Apache 中(比如添加模块加载指令到 Apache 配置文件)。
  • 确认 Pillow 安装在正确的 Python 环境
    确保你的 Pillow 模块是安装在 Python 3.5 环境下,而非 Python 3.4:

    python3.5 -m pip install --upgrade pillow
    

    这一步能保证 _imaging 模块存在于当前应用使用的 Python 环境中。

  • 检查 Apache 的 WSGIDaemonProcess 配置
    如果使用 Apache + mod_wsgi 的 daemon 模式,一定要在配置里指定正确的 Python 路径,示例如下:

    WSGIDaemonProcess myapp python-path=/path/to/your/app/env/lib/python3.5/site-packages
    WSGIProcessGroup myapp
    

    这样能强制 mod_wsgi 使用 Python 3.5 的库路径,避免版本混淆。

另外,你可以先在命令行用 Python 3.5 运行 import PIL._imaging 测试一下,如果能正常导入,说明模块本身没问题,问题就完全出在 mod_wsgi 和 Python 版本不匹配上。

内容的提问来源于stack exchange,提问作者Davixxa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:44:45