python3上的MySQLdb:没有名为release的模块
Posted
技术标签:
【中文标题】python3上的MySQLdb:没有名为release的模块【英文标题】:MySQLdb on python3: No module named release 【发布时间】:2012-09-11 11:14:27 【问题描述】:当我尝试使用 python 代码连接到数据库时,它显示以下错误:
TTraceback (most recent call last):
File "C:\Users\Ponmani\Desktop\test.cgi", line 5, in <module>
import mysqldb
File "C:\Python27\lib\site-packages\MySQLdb\__init__.py", line 19, in <module>
import _mysql
ImportError: DLL load failed: %1 is not a valid Win32 application.
谁能帮我解决这个问题。提前谢谢。
【问题讨论】:
谢谢大家,现在我安装了 python 2.7.3 现在它显示不同的错误。请参阅我编辑的帖子以了解错误。 重新安装mysql模块,不要随便复制。 【参考方案1】:MySQLdb 没有被列为 PyPi 上的 Python 3 模块,它是从哪里来的?不幸的是,您不能只是将模块从 Python 2 复制到 3 并期望它们第一次工作。
【讨论】:
【参考方案2】:根据PyPi 和the MySQLdb website,MySQLdb 不支持 Python 3。不确定你是如何安装它的,但它不会工作。
【讨论】:
pymysql 是一个替代品,它得到维护,表现更好,并且支持 python 3(至少"experimentally")。简而言之:改用 pymysql。 他正在使用一个非官方版本lfd.uci.edu/~gohlke/pythonlibs root:很好的发现!你怎么知道这是他用的。他们是否只是盲目地为 python 3.2 打包它,希望它有一天能神奇地工作? @Mu Mind -- 因为我之前发布了链接:),可能是,但是 3.1.3 版本似乎可以工作......没有尝试过 3.2。无论如何,使用 pymysql 似乎是一个可行的解决方案……或者切换回 2.x。【参考方案3】:这不是最优雅的方法,但它会解决您最初的问题:
而不是from release import...
写from .release import...
(注意“释放”之前的点)。
【讨论】:
【参考方案4】:检查你的mysqldb模块的版本,MySQL-python-1.2.3.win32-py2.7.exe和MySQL-python-1.2.4.win32-py2.7.exe,你只需要一个,试试2次
【讨论】:
【参考方案5】:https://www.pythonanywhere.com/wiki/UsingMySQL
pip install --user https://dev.mysql.com/get/Downloads/Connector-Python/mysql-connector-python-1.1.6.tar.gz
然后,更新您的 settings.py 以使用 oracle django 后端“mysql.connector.django”:
DATABASES =
'default':
'ENGINE': 'mysql.connector.django',
...
【讨论】:
以上是关于python3上的MySQLdb:没有名为release的模块的主要内容,如果未能解决你的问题,请参考以下文章
加载 MySQLdb 模块时出错:没有名为“MySQLdb”的模块
AWS Elastic Beanstalk 上的 Django - 没有名为 MySQLdb 的模块错误
Django 1.8:抛出 ImportError:没有名为“MySQLdb”的模块
加载 MySQLdb 模块时出错 - Windows 上的 Python 3.7