CentOS 上的 Django

Posted

技术标签:

【中文标题】CentOS 上的 Django【英文标题】:Django on CentOS 【发布时间】: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,将它复制到我的主机上,它似乎可以工作。但是,我不向其他任何人推荐这种方法,除非他们像我一样完全没有其他选择。 【参考方案1】:

如果您无法从 centos 存储库获得最新的软件包,您实际上可以手动安装 mysql-python 适配器而无需编译任何东西。只需下载 mysql-python tarball(来自 sourceforge 站点)。 tar 球中有各种设置脚本、自述文件等。您可以运行 ez_setup 文件、设置文件,或者,只需将 MySQLdb 目录复制到 pythonpath 中的某个位置。我认为在 centos 上,/usr/lib/python2.4/site-packages/ 有效。

祝你好运!

【讨论】:

一开始我试过了,但是 MySQLdb 需要一个必须编译的低级驱动程序。但是,在 VM 中编译它并将其复制到我的主机似乎已经成功了。【参考方案2】:

你可以安装centos的包python-setuptools,然后在里面使用easy-install你可以像这样安装最新版本的mysql-python

easy_install mysql-python

【讨论】:

这仅在您已经安装了先决条件(python 和 mysql 的构建头文件)时才有效。

以上是关于CentOS 上的 Django的主要内容,如果未能解决你的问题,请参考以下文章

DjangoDjango 文件下载最佳实践

DjangoDjango模块创建应用程序

DjangoDjango 如何支持 分组查询统计?

DjangoDjango Debug Toolbar调试工具配置

DjangoDjango中的模糊查询以及Q对象的简单使用

djangodjango-redis的使用方法