簡體   English   中英

導入Python的MySQL包時出錯

[英]Error importing MySQL package for Python

我正在嘗試使用python導入MySQL模塊,更具體地說是Flask,盡管我收到了一個錯誤。 我正在使用我的應用程序的虛擬環境。 這是錯誤:

    Traceback (most recent call last):
  File "../myapp/application.py", line 9, in <module>
    from flask.ext.mysql import MySQL
  File "/Users/pavsidhu/Documents/Web-Development/app/env/lib/python2.7/site-packages/flask/exthook.py", line 81, in load_module
    reraise(exc_type, exc_value, tb.tb_next)
  File "/Users/pavsidhu/Documents/Web-Development/app/env/lib/python2.7/site-packages/flaskext/mysql.py", line 3, in <module>
    import MySQLdb
  File "/Users/pavsidhu/Documents/Web-Development/app/env/lib/python2.7/site-packages/MySQLdb/__init__.py", line 19, in <module>
    import _mysql
ImportError: dlopen(/Users/pavsidhu/Documents/Web-Development/app/env/lib/python2.7/site-packages/_mysql.so, 2): Library not loaded: /Library/Python/2.7/site-packages/_mysql.so
  Referenced from: /Users/pavsidhu/Documents/Web-Development/app/env/lib/python2.7/site-packages/_mysql.so
  Reason: image not found

我可以在錯誤中看到它Library not loaded: /Library/Python/2.7/site-packages/_mysql.so 因為我正在使用路徑不正確的虛擬環境。 它應該是/lib/python2.7/site-packages/_mysql.so

有沒有辦法改變這個? 謝謝。

編輯:

我發現OSX上有一個終端命令來更改庫位置:

 sudo install_name_tool -change libmysqlclient.18.dylib /lib/python2.7/site-packages/MySQLdb/

雖然在擊中后我得到了這個:

Usage: /Library/Developer/CommandLineTools/usr/bin/install_name_tool [-change old new] ... [-rpath old new] ... [-add_rpath new] ... [-delete_rpath old] ... [-id name] input

我似乎沒有輸入命令錯誤,問題是什么?

作為一項規則,嘗試避免像瘟疫一樣的系統python安裝。 是的,甚至基於你的virtualenvs。 它往往會產生難以理解的問題。

我建議獲取Homebrew ,然后為頭文件安裝python和mysql:

brew install python
brew install mysql

然后在brew上基於python創建你的virtualenv:

virtualenv venv --python /usr/local/bin/python

我知道,跳過這一點需要更多的努力,但它會讓您的開發過程變得更加容易。 更不用說brew對於開發者來說是一個很好的幫助。

我只是檢查它是否有效,我花了兩分鍾才得到一個有效的MySQLdb。

暫無
暫無

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

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