2014-02-15 116 views
2

我已经工作了好几个小时,试图让MySQL使用Mac OS X,Python(我已经尝试过2.7和3.3)以及Django 1.6。Mac OS X + Python + Django + MySQL

本主题在SO和其他许多网页上以及多年期间(一个解决方案明确使用MySQLdb 1.2.2,最后一次于2007年3月进行了修改)进行了讨论。有些帖子似乎说它们有效,但是当我尝试他们的解决方案时,它不适合我。另一方面,几个月前的一篇文章坦率地说,这是无法完成的。

问题的核心似乎是安装驱动程序(不管是MySQLdb还是mysql连接器),并且症状因您所遵循的指示而异。当您最终尝试“python manage.py syncdb”时,来自各种尝试解决方案的典型show-stoppers一直是“No module named'MySQLdb'”和“Symbol not found:_mysql_affected_rows”。

有人想知道尝试这么多解决方案的行为本身是否已经让我的开发环境搞砸了,以至于现在无法使用干净的平板来工作。是的,我已经尝试过,无论有没有virtualenv。我不知道virtualenv是否让我更接近或者不是,因为我不知道如何认识更近。

我碰巧在我的机器上安装了OS X 10.7.5(Lion)和MySQL 5.0。这些都不是最新版本,但我不知道这是否重要,我不愿意改变事情。他们对我的机器上的其他MySQL应用程序工作正常。如果解决方案适用于更高版本,我会很乐意升级其中之一或两者。

有没有人真的有配置作为这篇文章的标题工作,与Python 2.7或3.3?如果是这样,如果你能指导我解决问题,我将非常感激。

UPDATE

我只是想让读者知道,我最终没有得到我的应用程序与Python 3.3,1.6 Django的运行,和MySQL排序的。我的应用程序已运行数月。

对不起,我没有时间重新创建许多小时的步骤和错误的步骤,我遵循这个工作。我就勾勒出关键点:

  • 我开始使用比十年前更多的Mac电脑,开始与PowerBook笔记本电脑,所以我的Mac有很多关于它的旧东西。我最终决定必须做的第一件事是摆脱Python和Django的每一个副本; MacPorts和Fink等安装程序;以及他们喜欢将其安装到的任何目录。谷歌当然对我学习如何做到这一点非常宝贵,以及下面提到的所有其他步骤。

  • 然后,我开始使用Homebrew作为我唯一的命令行安装程序,新鲜(尽可能让我的Mac重新开始)。

  • 我也用过virtualenv。我实际上并没有很好地理解virtualenv,并且再也没有时间研究它,但我已经掌握了它的工作原理,而且确实是一个好主意。

  • 那么,在virtualenv中,我也使用了pip,我猜它也是一个命令行安装程序,但它似乎是Homebrew/virtualenv方法的一部分。对不起,我无法提供这方面的任何专业知识。

  • 正如我所提到的,应用程序排序与MySQL一起工作,但是当我使用Homebrew卸载MySQL并安装MariaDB时,它开始运行得非常好。据我所知,Django,Sequel Pro,PyCharm的DB功能以及其他认为他们正在与MySQL交谈的程序无法说明MySQL与MariaDB之间的区别。我也非常喜欢MariaDB在线文档。无可否认,“MariaDB”不是一个好名字,但也不是“MySQL”。

底线:如果有人告诉你,这是不可能得到Python3.3和Django1.6用在Mac上的MySQL(或至少MariaDB的)运行时,不要相信他们。它可以完成,如果你的系统有很多旧文件和应用程序可能会与你正在做的事情发生冲突,那么很难做到这一点。

还有一件事:当我开始这个项目的工作时,我暂停了我的一项GAE应用程序,这个应用程序一年来我一直在取得很大的进步。由于我很快就会回到这个项目,所以我想让我的GAE安装在我的机器上,但遗憾的是,我不能再运行GAE安装程序进行更新。我得到一些关于无法找到python2.5的错误。叹。这就是当我重新开始研究该项目时,我必须期待解决的问题。

+0

你使用的是virtualenv,你是否安装了MySQL-python?您可能也想试试这个:http://stackoverflow.com/a/5054267/1637351 – schillingt

+0

使用MySQL连接器/ Python出现了什么特定的问题? Django 1.6中有一个问题正在得到修复和发布,但如果出现其他问题,请不要犹豫,以便报告。 – geertjanvdk

回答

1

你可以尝试使用纯Python pymysql

sudo easy_install pymysql 

(使用pip如果你安装了它)然后,execute_from_command_linemanage.py补充一点:

try: 
    import pymysql 
    pymysql.install_as_MySQLdb() 
except ImportError: 
    pass 
0

我觉得你斗争。我经历了同样的事情,发现设置过程非常令人沮丧。我不知道你在哪个网站上抛出异常的指示。但是我发现所有这些说明都缺少一个或两个小的先决条件。例如,在进行任何pip安装之前需要安装xcode和命令行工具。对于连接器,如果您使用的是mysql-python,则可能需要安装python-devel。我用this instruction。你可能是正确的,有这么多的安装尝试,你的系统可能是腐败的,你可能需要重新安装你的OSX并再次开始干净。这很痛苦,但这是我必须做的,以使其工作。我希望你的下一次尝试有效。

+0

我提出你的问题,因为我认为你分享它是非常有用的,毫无疑问还有其他人可能也会觉得它有用。 – vt2424253