2011-12-30 39 views
1

我有一个使用mysql-python写入MySQL数据库的Python脚本。这对Linux和Windows很好,但在OSX上,这个库对于我的客户来说安装起来太困难了。使用Python在OSX上写入MySQL更容易设置

需要编辑配置文件,目录符号链接,安装gcc,xcode,...
非技术用户的压倒性过程。

那么,有没有更实用的方法来支持在OSX上写MySQL?

一些潜在的替代品:

+0

mysql-python是最成熟的一个。一种可能性是为你的客户制作你自己的Mac OS X二进制发行版... – thesamet 2011-12-30 04:44:19

+0

不需要成熟的版本 - 只需简单的选择和插入 – hoju 2011-12-31 06:32:07

回答

2

UNFO幸运的是,目前确实没有微不足道的解决方案。如果你需要在Python中使用MySQL,OS X上最简单和最可靠的解决方案就是安装所有东西 - Python,MySQLdb,任何其他需要的第三方Python软件包,MySQL客户端库,以及MySQL服务器库和实用程序 - 使用包裹管理系统,如MacPorts。试图从不同来源安装各种组件经常会遇到以下问题:不兼容的内置可执行文件和库:32位与64位,不同的ABI(10.3与10.6)等。

对于安装了Xcode和the MacPorts base system的系统,你可以建立和使用一个命令安装所有东西:如果您需要MySQL服务器以及

sudo port install py27-mysql 

sudo port install py27-mysql mysql5-server 

所有的MacPorts安装的可执行文件将默认在安装,所以你只需要在那里运行的东西:

/opt/local/bin/python2.7 

要为你的用户更容易,你应该能够使用的MacPorts建立一套必要的端口为二进制存档并建立一个脚本安装MacPorts基础系统,然后安装预建的软件包。在MacPorts Guide here中有关于此的一些信息。但是,MacPorts 2.0.x的大部分功能已经过时。在指南更新之前,有信息从here开始。最安全的方法是为每个支持的OS X版本创建一组不同的软件包。它可能可能有可能在所需的最旧系统上构建一个向上兼容的集合:比如说,在10.5上构建包也可以在10.6和10.7系统上工作。为了防止干扰客户MacPorts安装,您还可以从源代码构建MacPorts基本系统,并将安装根目录更改为/opt/local以外的内容。

OS X更习惯的方法是使用py2app创建一个包含Python和MySQL客户端库的应用程序包。我不知道是否有人成功地做到了。

另一个建议:如果你真的不需要远程服务器,可以考虑使用SQLite代替。 Python标准库中包含Support for SQLite

+0

我发现安装PyMySQL没有问题,并且具有相同的功能接口为MySQL,所以更改很简单。感谢您的意见。 – hoju 2012-01-06 03:20:03