2024-05-15 02:35:49 发布
网友
我是一个Python新手,但我刚刚花了一天的时间来研究如何让MySQLdb正常工作,google提供的universe包含了很多关于PITA是什么的参考,以及大量看起来过时的指南。鉴于这个网站是为了解决这些问题,我知道我需要一个参考的解决方案在未来,我要问的问题,提供我的答案,看看还有什么漂浮到表面。
所以问题是如何让MySQLdb在Mac OS X上工作?
使用Python3的更新: 您可以简单地使用conda install mysqlclient来安装使用MySQLdb所需的库,因为MySQLdb目前已经存在。下面的SO问题是一个有用的线索:Python 3 ImportError: No module named 'ConfigParser'。安装mysqlclient将安装mysqlclient、mysql connector和llvmdev(至少,它在我的计算机上安装了这3个库)。
conda install mysqlclient
这是我在这个问题上漫无目的的经历。如果你对这个问题有更好的经验,希望看到它被编辑或概括。。。施点魔法吧。
注意:下一段中的注释适用于SnowLeopard,但不适用于Lion,Lion似乎需要64位MySQL
首先,作者(仍然?)MySQLdb的here说,最有害的问题之一是OS X安装了32位版本的Python,但大多数普通joe(包括我自己)可能会跳到安装64位版本的MySQL。糟糕的举动。。。如果已经安装了64位版本,请将其删除(有关此任务的说明可在SOhere上找到),然后下载并安装32位版本(软件包here)
关于如何构建和安装MySQLdb库有很多步骤。它们常常有细微的差别。This对我来说似乎是最受欢迎的,并提供了有效的解决方案。我在下面的几处编辑中复制了它
步骤0: 在开始之前,我假设您已经在mac上安装了MySQL、Python和GCC。
步骤1: 从SourceForge下载最新的MySQL for Python adapter。
第2步: 提取下载的包:
tar xzvf MySQL-python-1.2.2.tar.gz
第3步: 在文件夹中,清理包:
sudo python setup.py clean
几个额外的步骤(从this comment)
步骤3b: 删除MySQL-python-1.2.2/build/*目录下的所有内容——不要相信“python setup.py clean”可以帮您完成
步骤3c: 删除Users/$USER/.python eggs下的egg
第4步: 最初需要编辑mysql.c,但现在不再需要了。MySQLdb社区现在似乎已经修复了这个bug。
第5步: 在lib下创建一个符号链接,指向一个名为mysql的子目录。这是它在编译期间查找的位置。
sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql
第6步: 编辑setup_posix.py并更改以下内容
mysql_config.path=“mysql_配置”
到
mysql_config.path=“/usr/local/mysql/bin/mysql_config”
第7步: 在同一目录中,重新生成包(忽略它附带的警告)
sudo python setup.py build
第8步: 安装软件包就完成了。
sudo python setup.py install
第9步: 测试它是否有效。如果您可以导入MySQLdb,它就可以工作。
python
>>>import MySQLdb
import MySQLdb
第10步: 如果在尝试导入时收到一个错误,抱怨以Library not loaded: libmysqlclient.18.dylib结尾的Reason: image not found您需要创建另一个符号链接,即:
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
然后,您应该能够import MySQLdb无任何错误。
最后一个小问题是,如果从构建目录启动Python,则会出现以下错误:
/Library/Python/2.5/site packages/MySQL_Python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_MySQL.py:3:用户警告:Module _MySQL已经从/Library/Python/2.5/site-packages/MySQL_Python-1.2.3c1-py2.5-macosx-10.5-i386.egg//MySQL.pyc导入,但是在sys.path中添加了XXXX/MySQL-Python-1.2.3c1
这对Google来说很容易,但是为了省去你的麻烦,你最终会here(或者可能不会。。。不是一个特别经得起未来考验的URL)并指出需要cd ..退出构建目录,错误应该会消失。
cd ..
正如我在顶部所写的,我很想看到这个答案的概括性,因为有许多其他的具体经验,这个可怕的问题在那里。编辑离开,或者提供你自己更好的答案。
通过Macports安装mysql和python端口已经完成了所有困难的工作。
sudo port install py26-mysql sudo port install mysql5-server
应该安装你需要的。(见Stack overflow for comments re mysql server)
如果只需要连接到mysql而不运行服务器,那么第一行就足够了。
Macports now(2013年初)将为操作系统和可执行架构的常见组合提供二进制下载,其他人(如果您要求)将从源代码构建。
一般来说,当需要安装复杂的库等时,macports(或fink)会提供帮助。
仅限Python的代码,如果简单的C依赖项可以通过setuptools等设置,但是如果将两者混合使用,就会变得复杂。
对于Mac OS X来说,这是一个快速而简单的方法:10.8(山狮)、10.9(小牛)、10.10(优胜美地)和10.11(El Capitan):
我假设您已经安装了XCode、它的command line tools、Python和MySQL。
安装PIP:
sudo easy_install pip
编辑~/.profile:(在Mac OS X 10.10中可能不需要)
nano ~/.profile
复制并粘贴以下两行
export PATH=/usr/local/mysql/bin:$PATH export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/
保存并退出。后记执行以下命令:
source ~/.profile
安装MySQLdb
sudo pip install MySQL-python
测试一切是否正常只要试试
python -c "import MySQLdb"
这对我来说是一种魅力。我希望有帮助。
如果遇到有关缺少库的错误:库未加载:libmysqlclient.18.dylib,则必须将其符号链接到/usr/lib,如下所示:
/usr/lib
使用Python3的更新: 您可以简单地使用
conda install mysqlclient
来安装使用MySQLdb所需的库,因为MySQLdb目前已经存在。下面的SO问题是一个有用的线索:Python 3 ImportError: No module named 'ConfigParser'。安装mysqlclient将安装mysqlclient、mysql connector和llvmdev(至少,它在我的计算机上安装了这3个库)。这是我在这个问题上漫无目的的经历。如果你对这个问题有更好的经验,希望看到它被编辑或概括。。。施点魔法吧。
注意:下一段中的注释适用于SnowLeopard,但不适用于Lion,Lion似乎需要64位MySQL
首先,作者(仍然?)MySQLdb的here说,最有害的问题之一是OS X安装了32位版本的Python,但大多数普通joe(包括我自己)可能会跳到安装64位版本的MySQL。糟糕的举动。。。如果已经安装了64位版本,请将其删除(有关此任务的说明可在SOhere上找到),然后下载并安装32位版本(软件包here)
关于如何构建和安装MySQLdb库有很多步骤。它们常常有细微的差别。This对我来说似乎是最受欢迎的,并提供了有效的解决方案。我在下面的几处编辑中复制了它
步骤0: 在开始之前,我假设您已经在mac上安装了MySQL、Python和GCC。
步骤1: 从SourceForge下载最新的MySQL for Python adapter。
第2步: 提取下载的包:
第3步: 在文件夹中,清理包:
几个额外的步骤(从this comment)
步骤3b: 删除MySQL-python-1.2.2/build/*目录下的所有内容——不要相信“python setup.py clean”可以帮您完成
步骤3c: 删除Users/$USER/.python eggs下的egg
第4步: 最初需要编辑mysql.c,但现在不再需要了。MySQLdb社区现在似乎已经修复了这个bug。
第5步: 在lib下创建一个符号链接,指向一个名为mysql的子目录。这是它在编译期间查找的位置。
第6步: 编辑setup_posix.py并更改以下内容
mysql_config.path=“mysql_配置”
到
mysql_config.path=“/usr/local/mysql/bin/mysql_config”
第7步: 在同一目录中,重新生成包(忽略它附带的警告)
第8步: 安装软件包就完成了。
第9步: 测试它是否有效。如果您可以导入MySQLdb,它就可以工作。
>>>
import MySQLdb
第10步: 如果在尝试导入时收到一个错误,抱怨以
Library not loaded: libmysqlclient.18.dylib
结尾的Reason: image not found
您需要创建另一个符号链接,即:然后,您应该能够
import MySQLdb
无任何错误。最后一个小问题是,如果从构建目录启动Python,则会出现以下错误:
/Library/Python/2.5/site packages/MySQL_Python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_MySQL.py:3:用户警告:Module _MySQL已经从/Library/Python/2.5/site-packages/MySQL_Python-1.2.3c1-py2.5-macosx-10.5-i386.egg//MySQL.pyc导入,但是在sys.path中添加了XXXX/MySQL-Python-1.2.3c1
这对Google来说很容易,但是为了省去你的麻烦,你最终会here(或者可能不会。。。不是一个特别经得起未来考验的URL)并指出需要
cd ..
退出构建目录,错误应该会消失。正如我在顶部所写的,我很想看到这个答案的概括性,因为有许多其他的具体经验,这个可怕的问题在那里。编辑离开,或者提供你自己更好的答案。
通过Macports安装mysql和python端口已经完成了所有困难的工作。
应该安装你需要的。(见Stack overflow for comments re mysql server)
如果只需要连接到mysql而不运行服务器,那么第一行就足够了。
Macports now(2013年初)将为操作系统和可执行架构的常见组合提供二进制下载,其他人(如果您要求)将从源代码构建。
一般来说,当需要安装复杂的库等时,macports(或fink)会提供帮助。
仅限Python的代码,如果简单的C依赖项可以通过setuptools等设置,但是如果将两者混合使用,就会变得复杂。
对于Mac OS X来说,这是一个快速而简单的方法:10.8(山狮)、10.9(小牛)、10.10(优胜美地)和10.11(El Capitan):
我假设您已经安装了XCode、它的command line tools、Python和MySQL。
安装PIP:
编辑~/.profile:(在Mac OS X 10.10中可能不需要)
复制并粘贴以下两行
保存并退出。后记执行以下命令:
安装MySQLdb
测试一切是否正常只要试试
这对我来说是一种魅力。我希望有帮助。
如果遇到有关缺少库的错误:库未加载:libmysqlclient.18.dylib,则必须将其符号链接到
/usr/lib
,如下所示:相关问题 更多 >
编程相关推荐