【发布时间】:2012-10-24 08:23:38
【问题描述】:
我被指派维护一个用 Python 编写的与 MySQL 交互的工具。用户通过使用不同版本 Python 的不同应用程序使用此工具。
有时,同一应用程序的软件版本之间的 Python 版本会发生变化。我们无法控制用户选择与之交互的应用程序(尽管它们都有 Python 接口并在 OS X 下运行),但除了 Python-MySQL 的问题外,我几乎可以正常工作。具体来说,某些软件使用 64 位版本的 Python。其他的则带有 32 位版本。 OS X(我需要支持的操作系统)附带 Python 和 Python-MySQL 32 位安装,所以如果我尝试:
import MySQLdb
在使用 Python 64 位的软件中,导入失败,应用程序会说 OS X 附带的 MySQL 的二进制文件类型错误。
我已将 Python-MySQL 作为 64 位应用程序下载、编译和安装,但 Python-MySQL 使用 Python 鸡蛋。似乎鸡蛋被硬编码以指向特定的磁盘位置。在我的机器上是/usr/local/lib/mysql。
如果我在该路径上有 64 位版本,那么我的工具适用于具有 Python 64 位版本的应用程序,但所有其他使用 32 位版本 Python 的工具都会失败。如果我在该磁盘位置有 32 位版本的 MySQL,则 32 位工具可以工作,而 64 位版本将停止执行我需要的操作。
我尝试创建不同的鸡蛋并拥有一个 64 位版本,我将鸡蛋更改为指向 /usr/local/lib/mysql_x86_64,但我不知道该怎么做。我还尝试在编译 Python-MySQL 以指向该位置时更改设置,但我找不到这样做的方法。
现在我正在谷歌上搜索我的生活,但如果我刚刚写的内容对任何人敲响了警钟,你介意启发我吗?
我根本不是 Python-MySQL 专家。
【问题讨论】:
-
当它只是为了您的测试时,我会使用虚拟化来拥有 32 位和 64 位版本。
-
无需为此目的在 OS X 上进行虚拟化。 OS X 完全支持同一文件中的 32 位和 64 位可执行文件。
标签: python mysql macos 64-bit 32-bit