2009-04-21 10 views
5

Я ищу использовать Django на общем хосте, на котором запущена неизвестная версия CentOS. Моя основная проблема заключается в попытке взаимодействия с базой данных. На сервере установлен MySQL, но не MySQL-python. Первоначально я думал о том, что предлагаю запустить «yum install MySQL-python», но, по-видимому, версия MySQL-python, которая находится в хранилищах по умолчанию для CentOS, равна 1.2.1, а для Django требуется 1.2.1p2.Django on CentOS

Это требование сначала началось с Django 0.96. В release notes был добавлен устаревший интерфейс mysql_old для совместимости со старыми версиями MySQL-python. В прошлом июле этот устаревший интерфейс был бесцеремонным dropped. announcement этого изменения не указывает причину, отличную от старой.

Возможно ли восстановить этот старый интерфейс в Django 1.1? Были ли какие-либо изменения в интерфейсе базы данных с тех пор? Какова была бы опасность заставить Django пропустить проверку версии и использовать 1.2.1? Возможно ли скомпилировать более позднюю версию на другой машине и скопировать файлы на хост? Что мне нужно знать, чтобы это сделать?

Я также изучил SQLite, но CentOS поставляется с Python 2.4.3, и поэтому потребуется расширение pysqlite2, которое (afaict) не существует в репозитории.

Все можно решить, просто установив из источника, но это довольно грязно, и у меня гораздо меньше шансов убедить компанию сделать это, чем заставить их установить что-то из репозитория. Я понимаю, что мне кажется, что я должен просто получить другой хост, но вы должны будете доверять мне, что у меня есть свои причины, чтобы попытаться выполнить эту работу.

примечание: у меня нет опыта использования CentOS или yum, поэтому все, что я сказал о них, - это осознанное предположение. Пожалуйста, дайте мне знать, если все, что мне нужно сделать, это указать некоторые настройки или изменить репозитории, чтобы получить обновленные версии этих пакетов. Благодарю.

+0

У меня нет разрешения на запуск ня Я боюсь, и я дон Не знаю, установлен ли gcc. Вы знаете способ компиляции MySQL-python на другой машине и скопировать его в какое-то место в sys.path Python на хосте? –

+0

Если у вас есть достаточные разрешения для запуска yum, вы должны иметь возможность компилировать любую произвольную версию mysql-python, которая вам нравится, загружая ее и используя «python setup.py install» (при необходимости настраивая расположение библиотек mysql). Если gcc не установлен, используйте yum для его установки. Если установлена ​​неправильная версия python (и т. Д.), Используйте yum или gcc для замены всего стека по мере необходимости :-) Попробуйте «cat/etc/issue», чтобы узнать, какую версию CentOS у вас есть. –

+0

Попробуйте ввести gcc, чтобы узнать, установлен ли он –

ответ

0

Вы можете вручную установить адаптеры mysql-python без компиляции чего-либо, если вы не можете получить последний пакет из репозиториев centos. Просто загрузите tarball mysql-python (с сайта sourceforge). В tar-шаре есть всевозможные сценарии установки, readme и т. Д. Вы можете либо запустить файл ez_setup, файл установки, либо просто скопировать каталог MySQLdb куда-нибудь в свой pythonpath. Я думаю, что centos, /usr/lib/python2.4/site-packages/ работает.

Удачи вам!

+0

Я попробовал это сначала, но MySQLdb нуждается в низкоуровневом драйвере, который необходимо скомпилировать. Однако компиляция его в виртуальной машине и копирование ее на мой хост, похоже, сделали трюк. –

0

Вы можете установить CentOS' пакет python-setuptools, а затем с помощью easy-install в нем вы можете установить последнюю версию mysql-python как этот

easy_install mysql-python 
+1

это работает только в том случае, если у вас есть предварительные реквизиты (заголовки сборки для python и mysql) уже установлены. –