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

Apache+mod_wsgi部署cookiecutter-django遇ImportError问题求助

解决Cookiecutter-Django部署到Apache/mod_wsgi时的"找不到config模块"问题

你这明显是踩了包名冲突的坑——安装的第三方config包和Cookiecutter-Django项目自带的config核心包重名了,这直接引发了后续一系列错误。我给你一步步梳理解决办法:

第一步:卸载错误安装的第三方config包

先把这个添乱的包删掉,它完全不是你需要的:

pip uninstall config

这个第三方config包是给Python 2.x设计的,在Python 3.5里本身就有语法兼容问题,更关键的是它的名字和你项目里包含settings的config包完全重复。Python导入模块时会优先找到这个第三方单文件模块,而不是你项目里带__init__.py的config包,所以才会出现'config' is not a package的报错。

第二步:确保Apache/mod_wsgi用对Python环境

你本地python3 manager.py runserver能正常跑,说明开发环境没问题,但Apache大概率没正确加载你的虚拟环境:

  • 先检查mod_wsgi绑定的Python版本:执行mod_wsgi-express module-config,看输出里的Python路径是不是指向你的/usr/local/pulseenv虚拟环境的Python3.5。如果不是,得重新编译mod_wsgi绑定到你的虚拟环境Python。
  • 在Apache配置文件里明确指定虚拟环境和项目路径:
    # 替换成你的实际项目路径和虚拟环境路径
    WSGIDaemonProcess my_django_app python-home=/usr/local/pulseenv python-path=/path/to/your/cookiecutter-project
    WSGIProcessGroup my_django_app
    WSGIScriptAlias / /path/to/your/cookiecutter-project/config/wsgi.py
    
    <Directory /path/to/your/cookiecutter-project/config>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>
    

第三步:确认项目config包结构正确

你的项目根目录下的config文件夹必须有__init__.py(空文件也行),这样Python才会把它识别为合法包。同时检查config/wsgi.py的配置:

import os
import sys

# 把项目根目录加入Python路径(防止Apache没自动识别)
sys.path.append('/path/to/your/cookiecutter-project')

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.production")

第四步:调整文件权限

确保Apache运行用户(通常是www-data或apache)能读取项目所有文件和文件夹:

chown -R www-data:www-data /path/to/your/cookiecutter-project
chmod -R 755 /path/to/your/cookiecutter-project

做完这些后重启Apache,应该就能正常加载你的Django项目了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:43:10