python - Mac OS X + Python + Django + MySQL

标签 python mysql django macos

几天来,我花了很多时间试图让MySQL与Mac OS X、Python(我尝试了2.7和3.3)以及Django 1.6一起工作。
这个主题在许多网页上都有,包括在SO和其他地方,并且经过多年的讨论(有一个解决方案专门使用MySQLdb 1.2.2,最近一次修改是在2007年3月)。有些帖子似乎说他们已经成功了,但当我尝试他们的解决方案时,它对我不起作用。另一方面,几个月前的一篇文章直截了当地说这是不可能的。
问题的核心似乎是安装一个驱动程序(无论是MySQLdb还是mysql connector),根据您遵循的指令,症状会有所不同。各种尝试的解决方案的典型停止显示是“没有名为“MySQLdb”的模块”和“找不到符号:mysql受影响的行”,当您最后尝试“python manage.py syncdb”时。
有人想知道,尝试这么多解决方案的行为本身是否已经破坏了我的开发环境,以至于本来可以一帆风顺的工作现在就不起作用了。是的,我试过有没有virtualenv。我不知道virtualenv是否让我更亲近了,因为我不知道如何识别自己的亲近。
我的机器上正好有OSX10.7.5(Lion)和MySQL5.0。这些都不是最新的版本,但我不知道这是否重要,我不愿意继续改变。它们对我机器上的其他MySQL应用程序运行良好。如果有更高版本的解决方案,我很乐意升级其中一个或两个。
是否有人将配置列为本文的标题,使用Python2.7或3.3?如果是的话,如果你能告诉我解决办法,我将不胜感激。
更新
我只是想让读者知道,我的应用程序最终运行了Python3.3、Django1.6和某种MySQL。我的应用程序已经顺利运行了好几个月了。
抱歉,我没有时间重新创建我为使此工作而遵循的许多小时的步骤和错误步骤。我将概述要点:
我十多年前就开始使用Mac,从PowerBooks开始,所以我的Mac上有很多旧的东西。我最终决定要做的第一件事是删除Python和Django的每个副本;安装程序,如MacPorts和Fink;以及他们喜欢将安装放入的任何目录。当然,谷歌对于我学习如何做到这一点,以及下面提到的所有其他步骤都是非常宝贵的。
然后,我使用自制程序作为我唯一的命令行安装程序,重新开始(尽可能让我的Mac重新开始)。
我也用了virtualenv。我不太了解virtualenv,也没有时间去研究它,但我已经让它发挥作用了,这似乎是个好主意。
嗯,在virtualenv中,我还使用了pip,我猜它也是一个命令行安装程序,但它似乎是Homebrew/virtualenv方法的一部分。抱歉,我不能提供任何专业知识。
正如我所提到的,这个应用程序有点和MySQL一起工作,但是当我使用Homebrew卸载MySQL并安装MariaDB时,它开始工作得非常好。据我所知,Django、Sequel Pro、PyCharm的DB特性,以及其他认为正在与MySQL对话的程序都无法区分MySQL和MariaDB之间的区别。我也非常喜欢MariaDB在线文档。无可否认,“MariaDB”不是一个好名字,但“MySQL”也不是。
一句话:如果有人告诉你在Mac上用MySQL(或者至少是MariaDB)运行Python3.3和Django1.6是不可能的,不要相信他们。这是可以做到的,如果你的系统有很多遗留文件和应用程序,可能会与你正在尝试做的事情发生冲突,那就很难做到。
还有一件事:当我开始做这个项目时,我暂停了一个GAE应用程序的工作,我已经在这个程序上取得了一年多的巨大进步。由于我将很快回到那个项目,我想保持GAE安装在我的机器上是最新的,但遗憾的是,我不能再运行GAE安装程序进行更新。我在找不到蟒蛇2.5的时候出错了叹息。当我重新开始做那个项目的时候,这就是我期待解决的问题。

最佳答案

您可以尝试使用纯pythonpymysql

sudo easy_install pymysql

(如果已安装,请使用pip)然后,在execute_from_command_line中的manage.py之前添加:
try:
    import pymysql
    pymysql.install_as_MySQLdb()
except ImportError:
    pass

关于python - Mac OS X + Python + Django + MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21792569/

相关文章:

mysql - 无法在日期字段上添加外键约束

database - 在 Django 中查询

Django REST框架: Validate before a delete

python - 在 pythonanywhere.com 应用程序上找不到模块rest_framework

python - 如何将复杂的 url 传递给 django 中的通用类更新 View

python - Python Nltk 中的斯坦福实体识别器(无大小写)

python - 使用 pandas 重复数据框中的项目

python - 计算包含某些项目的列表集的总唯一排列的算法

mysql - 如何在Mysql的Group_Concat中使用if语句

MySQL 查询 - 无法获得正确的结果