在OSX上使用Python写入MySQL的简化设置

1 投票
1 回答
1455 浏览
提问于 2025-04-17 09:14

我有一个Python脚本,它通过mysql-python库来写入MySQL数据库。在Linux和Windows上使用没问题,但在OSX上,这个库对我的客户来说安装起来太复杂了。

安装过程中需要修改配置文件、创建目录的符号链接,还要安装gcc、xcode等等……
对于不懂技术的用户来说,这简直是个难以承受的过程。

那么,有没有更简单的方法可以在OSX上支持写入MySQL呢?

这里有一些可能的替代方案:

1 个回答

2

很遗憾,目前没有简单的解决办法。如果你想在Python中使用MySQL,最简单和最可靠的方法是在OS X上通过一个包管理系统来安装所有东西——包括Python、MySQLdb、其他需要的第三方Python包、MySQL客户端库,以及如果需要的话,MySQL服务器库和工具。推荐使用MacPorts。如果你尝试从不同的来源安装这些组件,常常会遇到不兼容的问题,比如32位和64位的差异,或者不同的ABI(应用程序二进制接口)版本(比如10.3和10.6)等。

如果你的系统上已经安装了Xcode和MacPorts基础系统,你可以用一个命令来构建和安装所有东西:

sudo port install py27-mysql

如果你还需要MySQL服务器的话:

sudo port install py27-mysql mysql5-server

所有通过MacPorts安装的可执行文件默认会安装在/opt/local目录下,所以你只需要从那里运行程序:

/opt/local/bin/python2.7

为了让用户更方便,你可以使用MacPorts来构建所需的端口集合,并将其打包成二进制档案,然后设置一个脚本来安装MacPorts基础系统以及你预先构建的包。在MacPorts指南中有一些相关信息,可以在这里找到。不过,很多内容对于MacPorts 2.0.x来说已经过时了。在指南更新之前,可以从这里找到一些信息。最安全的做法是为每个支持的OS X版本构建不同的包。也许可以在最老的系统上构建一个向上兼容的包,比如在10.5上构建的包也能在10.6和10.7上运行。为了避免干扰客户的MacPorts安装,你也可以从源代码构建MacPorts基础系统,并将安装根目录改为其他位置,而不是/opt/local

在OS X上,更常见的做法是使用py2app来创建一个应用程序包,其中包含Python和MySQL客户端库。我不确定是否有人成功做到过这一点。

还有一个建议:如果你不需要远程服务器,可以考虑使用SQLite。Python标准库中包含了对SQLite的支持

撰写回答