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

生产环境django_celery_beat添加任务时pymemcache模块缺失问题

解决django_celery_beat添加任务时"pymemcache模块找不到"的问题

问题核心

生产环境访问/admin/django_celery_beat/periodictask/add/时触发ModuleNotFoundError: No module named 'pymemcache',但已在虚拟环境安装该模块,本地运行正常,缓存配置使用PyMemcacheCache后端。

解决方案

  • 确认模块安装路径与进程Python环境匹配
    激活生产环境虚拟环境,执行pip show pymemcache查看安装路径,对比错误日志中的Python路径/opt/jelastic-python311/lib/python3.11/site-packages/,确保pymemcache被安装到进程实际使用的Python环境中。若路径不匹配,说明进程未使用目标虚拟环境。

  • 直接在目标Python环境安装pymemcache
    若进程使用指定路径的Python(如错误日志中的/opt/jelastic-python311/bin/python),用对应pip直接安装:

    /opt/jelastic-python311/bin/pip install pymemcache
    

    确保模块被安装到错误日志显示的site-packages目录下。

  • 验证Django与Celery进程的运行环境
    分别在Django shell和Celery shell中执行import pymemcache,确认两者都能正常导入模块。若其中一个无法导入,说明该进程未使用正确虚拟环境,需调整启动脚本,激活对应虚拟环境后再启动服务。

  • 临时切换缓存后端排查问题
    暂时将缓存配置改为MemcachedCache(依赖python-memcached模块):

    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '10.100.23.95:11211',
    },
    

    若切换后能正常添加任务,说明PyMemcacheCache的依赖仍存在问题,可尝试指定兼容版本重新安装:

    pip install pymemcache==4.0.0
    
  • 检查文件权限
    确保pymemcache的安装目录及文件拥有Django/Celery进程运行用户的可读权限,避免因权限不足导致模块无法导入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 02:28:07