2014-02-15 135 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