簡體   English   中英

在OSX上pip安裝MySQL-python之后的版本錯誤

[英]Version error after pip installing MySQL-python on OSX

我已經成功地將MySQL-python安裝到我的虛擬環境中,事實證明PyCharm可以導入它。 但是,我收到此消息:

ImportError: this is MySQLdb version (1, 2, 4, 'beta', 4), but _mysql is version (1, 2, 5, 'final', 1)

我的安裝方法是:

  • 在終端中激活我的Venv
  • export PATH=$PATH:/usr/local/mysql/bin
  • export CFLAGS=-Qunused-arguments export CPPFLAGS=-Qunused-arguments
  • pip install MySQL-python

這將返回成功的構建。 我真的不明白問題是什么, pip為我提供了損壞的目錄嗎?

我試圖通過谷歌搜索和類似的解決方法來解決這個問題,但沒有成功。 然后,我嘗試從sourceforge下載1.2.4b4版本,並在venv中構建它。 這給了我以下錯誤:

ld: warning: ignoring file /usr/local/Cellar/mysql/5.6.19/lib/libmysqlclient_r.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/Cellar/mysql/5.6.19/lib/libmysqlclient_r.dylib

我已經在mysql和python上運行文件$(which),返回mysql的64位版本以及python的32位和64位版本。

我真的不知道下一步該怎么做,非常感謝您的幫助,如果我錯過了什么,請告訴我! 謝謝

編輯:

我pip卸載了MySQL-python,並使用以下zip再次嘗試: https : //pypi.python.org/pypi/MySQL-python/1.2.5

pip install -Iv https://pypi.python.org/packages/source/M/MySQL-python/MySQL-python-1.2.5.zip#md5=654f75b302db6ed8dc5a898c625e030c

這給了我與以前相同的錯誤,指出MySQLdb是1.2.4b4版本,但_mysql是1.2.5。 這使我相信我可能有一個尚未卸載的MySQL-python版本。 我將如何進行測試? 謝謝!

幾個常見的潛在問題:

  • 確保您的路徑正確,並且pippython引用同一個解釋器。 最好通過執行source activate <NAME>或將其添加到路徑而不是附加來激活虛擬環境。
  • 我在MySqlSB上遇到多個問題,並且堆棧溢出充滿了有關它的問題。 當我切換到pymysql時,我所有的問題都消失了,其API與mysqldb完全兼容。 更好的是,有一個方法install_as_MySQLdb()使pymysql看起來與mysqldb完全一樣,因此所有軟件包都希望后者能與前者一起使用。

我用於在OSX上進行設置的過程是:

  • 擺脫所有Python安裝(系統python,自制軟件等)
  • brew install mysql gcc 如果您想將c / fortran擴展編譯為python模塊,請使用gcc
  • 注意權限錯誤-始終運行brew doctor
  • 安裝水
  • 設置虛擬環境conda create -n <NAME> python=3.4
  • 激活虛擬環境source activate <NAME>
  • 安裝所需的軟件包,先嘗試conda ,如果沒有軟件包,請嘗試pip 例如,我總是做conda install numpy所以我不必自己編譯它,而我做pip install pymysql

感謝您提供上述答案,為以后的疑難解答提供了很好的建議。 我設法通過重新安裝1.2.5構建並重新啟動編譯器來解決此問題。

換句話說,我上面概述的方法應該有效。 為了將來參考,請確保您的bin / activate和bin / pip的路徑設置為venv,而不是開發人員團隊中的其他人

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM