mbl*_*ll8 131
使用Python3的用户的更新:
您可以简单地使用conda install mysqlclient
安装使用当前存在的MySQLdb所需的库.以下SO问题是一个有用的线索:Python 3 ImportError:没有名为'ConfigParser'的模块.安装mysqlclient将安装mysqlclient,mysql-connector和llvmdev(至少,它在我的机器上安装了这3个库).
这是我对这个问题的漫无边际体验的故事.如果你对这个问题有更好的体验,我很乐意看到它被编辑或概括......应用一点那么神奇的魔法.
注意:下一段中的注释适用于Snow Leopard,但不适用于Lion,后者似乎需要64位MySQL
首先,MySQLdb的作者(仍然?)在这里说,最恶毒的问题之一是OS X安装了32位版本的Python,但大多数普通的joes(包括我自己)可能跳转到安装64位版本MySQL 不好动...删除64位版本,如果你已经安装了它(这个繁琐的任务指令适用于SO 这里),然后下载并(包安装32位版本在这里)
关于如何构建和安装MySQLdb库,有许多循序渐进的步骤.他们经常有微妙的差异. 这似乎是我最受欢迎的,并提供了工作解决方案.我通过下面的几个编辑再现了它
第0步: 在开始之前,我假设你在mac上安装了MySQL,Python和GCC.
步骤1:从SourceForge 下载最新的MySQL for Python适配器.
第2步: 提取下载的包:
tar xzvf MySQL-python-1.2.2.tar.gz
Run Code Online (Sandbox Code Playgroud)
第3步: 在文件夹内,清理包:
sudo python setup.py clean
Run Code Online (Sandbox Code Playgroud)
额外步骤的偶像,(来自此评论)
步骤3b: 删除MySQL-python-1.2.2/build/*目录下的所有内容 - 不要相信"python setup.py clean"为你做这件事
步骤3c: 删除Users/$ USER/.python-eggs下的蛋
第4步: 最初需要编辑_mysql.c,但现在不再需要了.MySQLdb社区似乎现在修复了这个bug.
步骤5: 在lib下创建一个符号链接,指向一个名为mysql的子目录.这是它在编译期间寻找的地方.
sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql
Run Code Online (Sandbox Code Playgroud)
第6步: 编辑setup_posix.py并更改以下内容
mysql_config.path ="mysql_config"
至
mysql_config.path ="/ usr/local/mysql/bin/mysql_config"
步骤7: 在同一目录中,重建您的包(忽略它附带的警告)
sudo python setup.py build
Run Code Online (Sandbox Code Playgroud)
第8步: 安装包,你就完成了.
sudo python setup.py install
Run Code Online (Sandbox Code Playgroud)
第9步: 测试它是否正常工作.如果您可以导入MySQLdb,它可以工作.
python
Run Code Online (Sandbox Code Playgroud)
>>> import MySQLdb
步骤10:
如果在尝试导入时收到错误,抱怨以下Library not loaded: libmysqlclient.18.dylib
结尾:Reason: image not found
您需要创建一个额外的符号链接:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Run Code Online (Sandbox Code Playgroud)
然后你应该import MySQLdb
没有任何错误.
最后一个打嗝是,如果从构建目录启动Python,您将收到此错误:
/Library/Python/2.5/site-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.py:3:UserWarning:模块_mysql已从/Library/Python/2.5/导入site-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.pyc,但XXXX/MySQL-python-1.2.3c1正被添加到sys.path
这是很容易谷歌,但救你,你最终会麻烦这里(或者也许不是...不是特别面向未来的URL),并计算出你需要cd ..
从生成目录和错误应该消失.
正如我在顶部写的那样,我很乐意看到这个答案的概括,因为这个可怕的问题有很多其他特定的经验.编辑,或提供自己的,更好的答案.
F L*_*has 99
适用于Mac OS X 10.8(Mountain Lion),10.9(Mavericks),10.10(优胜美地)和10.11(El Capitan)的快捷方式:
我假设你已经安装了XCode,它的命令行工具,Python和MySQL.
安装PIP:
sudo easy_install pip
Run Code Online (Sandbox Code Playgroud)编辑〜/ .profile :( 可能在Mac OS X 10.10中没有必要)
nano ~/.profile
Run Code Online (Sandbox Code Playgroud)
复制并粘贴以下两行
export PATH=/usr/local/mysql/bin:$PATH
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/
Run Code Online (Sandbox Code Playgroud)
保存并退出.后续执行以下命令:
source ~/.profile
Run Code Online (Sandbox Code Playgroud)安装MySQLdb
sudo pip install MySQL-python
Run Code Online (Sandbox Code Playgroud)
要测试一切是否正常,请尝试
python -c "import MySQLdb"
Run Code Online (Sandbox Code Playgroud)它对我来说就像一个魅力.我希望它有所帮助.
如果您遇到有关丢失库的错误:库未加载:libmysqlclient.18.dylib然后您必须将其符号链接,/usr/lib
如下所示:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Run Code Online (Sandbox Code Playgroud)
use*_*019 36
通过Macports安装mysql和python 搬运工已经完成了所有艰难的工作.
sudo port install py26-mysql
sudo port install mysql5-server
Run Code Online (Sandbox Code Playgroud)
应该安装你需要的东西.(请参阅堆栈溢出以获取有关mysql服务器的评论)
如果你只需要连接到mysql而不是运行服务器那么第一行就足够了.
Macports现在(2013年初)将为可执行体系结构的OS的常见组合提供二进制下载,对于其他人(如果您请求它),它将从源代码构建.
通常,当需要安装复杂的库等时,macports(或fink)会提供帮助.
只有Python的代码,如果可以通过setuptools等设置简单的C依赖项,但如果你把它们混合起来就会变得复杂.
Ron*_*ter 15
安装点子:
sudo easy_install pip
Run Code Online (Sandbox Code Playgroud)
安装brew:
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
Run Code Online (Sandbox Code Playgroud)
安装mysql:
brew install mysql
Run Code Online (Sandbox Code Playgroud)
安装MySQLdb
sudo pip install MySQL-python
Run Code Online (Sandbox Code Playgroud)
如果您有编译问题,请尝试编辑〜/ .profile文件,如下面的答案之一.
Ric*_*man 13
在收到完成步骤9的错误后,这是我必须经历的另一个步骤:
ImportError: dlopen(/Users/rick/.python-eggs/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Run Code Online (Sandbox Code Playgroud)
参考:谢谢!http://ageekstory.blogspot.com/2011_04_01_archive.html
pip uninstall MySQL-python
brew install mysql
pip install MySQL-python
Run Code Online (Sandbox Code Playgroud)
然后测试一下:
python -c "import MySQLdb"
Run Code Online (Sandbox Code Playgroud)
您可以尝试使用 pure-python pymysql
:
sudo easy_install pymysql
Run Code Online (Sandbox Code Playgroud)
(或者如果您已经安装了它,则使用它。)然后,在代码中的pip
前面添加以下内容:import MySQLdb
try:
import pymysql
pymysql.install_as_MySQLdb()
except ImportError:
pass
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
184456 次 |
最近记录: |