Python и MySQL

Я могу заставить Python работать с Postgresql, но не могу заставить его работать с MySQL. Основная проблема заключается в том, что на моей учетной записи общего хостинга у меня нет возможности устанавливать такие вещи, как Django или PySQL, я обычно не могу установить их на свой компьютер, поэтому, возможно, это хорошо, что я не могу установить на хост.

Я нашел bpgsql действительно хорошим, потому что он не требует установки, это единственный файл, который я могу просмотреть, прочитать и затем вызвать функции. Кто-нибудь знает что-то подобное для MySQL?

6 ответов

Решение

MySQLdb - это то, что я использовал раньше.

Если ваш хост использует Python версии 2.5 или выше, встроенная поддержка баз данных sqlite3 (sqlite позволяет вам иметь реляционную базу данных, которая представляет собой просто файл в вашей файловой системе). Но покупатель остерегается, sqlite не подходит для производства, поэтому он может зависеть от того, что вы пытаетесь с ним делать.

Другой вариант может заключаться в том, чтобы позвонить вашему хосту и пожаловаться или сменить хост. Честно говоря, в наши дни на любом уважающем себя веб-хосте, поддерживающем python и mysql, должна быть предварительно установлена ​​MySQLdb.

У меня нет опыта работы с http://www.siteground.com/ в качестве веб-хостинга лично.

Это всего лишь предположение, но общий хост обычно поддерживает Python и MySQL с модулем MySQLdb (например, это делает GoDaddy). Попробуйте следующий CGI-скрипт, чтобы увидеть, установлен ли MySQLdb.

#!/usr/bin/python

module_name = 'MySQLdb'
head = '''Content-Type: text/html

%s is ''' % module_name

try:
    __import__(module_name)
    print head + 'installed'
except ImportError:
    print head + 'not installed'

Я загрузил его и получил внутреннюю ошибку

Premature end of script headers

После долгой игры я обнаружил, что если бы

import cgi
import cgitb; cgitb.enable()
import MySQLdb

Это даст мне гораздо более полезный ответ и скажет, что он не был установлен, вы можете увидеть это сами -> http://woarl.com/db.py

Как ни странно, это приведет к ошибке

import MySQLdb
import cgi
import cgitb; cgitb.enable()

Я посмотрел на некоторые другие файлы, которые у меня были там, и кажется, что библиотека была одной из тех, которые я уже пробовал.

Вы можете попробовать установить собственную установку Python с использованием Virtual Python. Проверьте, как настроить Django, используя его здесь. Это было написано давным-давно, но оно показывает, как я настроил MySQLdb, не имея root-доступа или чего-то подобного. Как только вы освоите основы, вы можете установить любую библиотеку Python, какую захотите.

Вы действительно хотите MySQLdb для любого кода MySQL + Python. Однако вам не нужен root-доступ или что-либо еще, чтобы его использовать. Вы можете собрать / установить его в пользовательском каталоге (~/lib/python2.x/site-packages) и просто добавить его в переменную env PYTHON_PATH. Это должно работать практически для любой библиотеки Python.

Дайте ему шанс, там действительно нет хорошей альтернативы.

Выбрать на

https://docs.djangoproject.com/en/1.8/ref/databases/

MySQLdb в основном используется драйвером, но если вы используете python3 и django 1.8.x, которые не будут работать, вы должны использовать mysqlclient, который является народом MySQLdb по следующей ссылке

https://pypi.python.org/pypi/mysqlclient

Другие вопросы по тегам