AWS Elastic Beanstalk 上的 Django - 没有名为 MySQLdb 的模块错误
Posted
技术标签:
【中文标题】AWS Elastic Beanstalk 上的 Django - 没有名为 MySQLdb 的模块错误【英文标题】:Django on AWS Elastic Beanstalk - No module named MySQLdb Error 【发布时间】:2019-05-22 20:49:57 【问题描述】:我一直在使用 AWS Elastic Beanstalk 运行这个 Web 应用程序,在 64 位 Amazon Linux/2.0.1 上运行的 Amazon Linux 版本 Python 2.7 上没有任何问题。
当我尝试“升级”到最新的 Amazon Linux 版本时:Python 2.7 版本、Linux/2.7.7 或 2.0.1 之后的任何版本,我收到此错误:
ImproperlyConfigured: Error loading mysqldb module: No module named MySQLdb.
Did you install mysqlclient or MySQL-python?
我确实已经安装并包含在我的requirements.txt
文件中
MySQL-python==1.2.5
mysqlclient==1.3.14
我尝试重新安装它们并从需求中删除它们,但仍然没有运气。
在我的 .ebextensions 中,我确实有这些:
packages:
yum:
python27-devel: []
libmemcached-devel: []
gcc: []
libxml2-devel: []
libxslt-devel: []
之后我添加了gcc
和libx
,所以我知道它们不会导致错误。 (我没有尝试删除python27-devel
或libmemcached-devel
有什么想法吗?
除了2.0.1
之外发生了什么变化,因为一切都在运行版本2.0.1
并且它在任何更新的EB 版本上都不能正常工作?
【问题讨论】:
你能分享你在.ebextensions
中的任何配置吗?
@MicahCarrick 是的,我可以!我刚刚更新了我的问题并在上面添加了那些.ebextrensions
。感谢收看!
【参考方案1】:
通过查看过去的一些工作,我认为您可能需要将mysql-devel
添加到您的.ebextensions
文件中的yum
部分
【讨论】:
天哪!我刚刚在我的“开发”服务器上尝试过,没有出错。我将在周一早上运行生产服务器更新,并会回复您以奖励赏金。太感谢了!我快疯了,几乎尝试了其他所有方法。 一切都很顺利,我现在运行的是最新的 AWS Linux 版本。再次感谢您的帮助!非常感谢!【参考方案2】:这也发生在我身上,据我所知,您可能需要重建虚拟环境。在弹性豆茎控制台中。或者使用 eb 命令行界面。
【讨论】:
感谢您抽出宝贵时间回答。不幸的是,我已经尝试过了,但没有运气。还有其他建议吗? 只是那个包,还是发生在任何其他包上? 就这么一个包。至少从日志来看,这似乎是唯一的问题。 当你运行 pip freeze 会发生什么? 本地?我的virt_env
中安装了一长串软件包。话虽如此,我并没有将所有这些都包含在我的 requiremetns.txt
中,因为我的应用程序中不再需要一些旧模块。【参考方案3】:
改为安装
$ apt-get install python-mysqldb
【讨论】:
Elasticbeanstalk 运行不使用 apt 而是使用 yum 的 Amazon Linus。以上是关于AWS Elastic Beanstalk 上的 Django - 没有名为 MySQLdb 的模块错误的主要内容,如果未能解决你的问题,请参考以下文章
如何避免 AWS Elastic Beanstalk 上的 TooManyApplicationVersion 异常?
反应:AWS Elastic Beanstalk 上的 502 错误网关
AWS Elastic Beanstalk 上的 Wordpress
AWS Elastic Beanstalk 上的 Spring Boot 并记录到文件