【发布时间】:2010-10-20 23:02:25
【问题描述】:
我希望在运行未知版本 CentOS 的共享主机上使用 Django。我的主要问题是尝试与数据库交互。服务器安装了 MySQL,但没有安装 MySQL-python。我最初想建议运行“yum install MySQL-python”,但显然 CentOS 默认存储库中的 MySQL-python 版本是 1.2.1,而 Django 需要 1.2.1p2。
这个要求首先从 Django 0.96 开始。在release notes 中,添加了一个名为 mysql_old 的已弃用接口,以便与旧版本的 MySQL-python 兼容。去年 7 月,这个被弃用的接口毫不客气地被 dropped 所取代。此更改的announcement 仅表明它是旧的。
是否可以在 Django 1.1 中恢复这个旧界面?从那时起,数据库接口是否有任何变化?强制 Django 跳过版本检查并使用 1.2.1 会有什么危险?是否可以在另一台机器上编译更高版本并将文件复制到主机?为了做到这一点,我需要知道什么?
我也研究了 SQLite,但 CentOS 附带 Python 2.4.3,因此需要 pysqlite2 扩展,而存储库中不存在(afaict)。
一切都可以通过简单地从源代码安装来解决,但这相当麻烦,而且我说服公司这样做的机会比让他们从存储库安装东西要小得多。我意识到我似乎应该换一个主机,但你必须相信我,我有理由尝试完成这项工作。
注意:我没有任何使用 CentOS 或 yum 的经验,所以我所说的关于它们的一切都是有根据的猜测。如果我需要做的只是指定一些设置或更改存储库以获取这些软件包的更新版本,请告诉我。谢谢。
【问题讨论】:
-
恐怕我没有运行yum的权限,也不知道有没有安装gcc。你知道如何在另一台机器上编译 MySQL-python 并将其复制到主机上 Python 的 sys.path 中的某个位置吗?
-
如果您有足够的权限运行 yum,您应该能够通过下载并使用 'python setup.py install' 来编译您喜欢的任意 mysql-python 版本(如果需要,配置位置的mysql库)。如果没有安装 gcc,使用 yum 安装。如果安装了错误版本的 python (etc),请根据需要使用 yum 或 gcc 替换整个堆栈 :-) 尝试 'cat /etc/issue' 找出您拥有的 CentOS 版本。
-
尝试输入 gcc 看看是否已安装
-
我知道这听起来很糟糕,但我只有 FTP 访问权限。我已经能够从我通过点击它们的 URL 调用的 Python 脚本中执行一些 shell 命令,但它并不总是有效,而且我显然不能做任何交互式的事情。我刚刚检查过,当我尝试调用 gcc 时出现错误,所以我认为它没有安装。奇怪的是,我在尝试调用“yum -v install MySQL-python”时收到以下消息:
-
我设置了一个虚拟机,安装了 CentOS 5.3 (x86),然后编译了最新的 MySQL-python,将它复制到我的主机上,它似乎可以工作。但是,我不向其他任何人推荐这种方法,除非他们像我一样完全没有其他选择。
标签: django centos yum pysqlite mysql-python