Проблема установки MySQLdb для второй версии Python - PullRequest
3 голосов
/ 09 ноября 2010

Контекст: я работаю над некоторыми скриптами Python на сервере Ubuntu.Мне нужно использовать некоторый код, написанный на Python 2.7, но на нашем сервере есть Python 2.5.Мы установили 2.7 в качестве второго экземпляра Python, чтобы не нарушать ничего, что зависит от 2.5.Теперь мне нужно установить пакет MySQLdb.Я предполагаю, что не могу сделать это простым способом, запустив apt-get install python-mysqldb, потому что он, скорее всего, просто переустановится на python 2.5, поэтому я просто пытаюсь установить его вручную.

Проблема: в MySQL-python-1.2.3 каталог Я пытаюсь запустить python2.7 setup.py build и получаю сообщение об ошибке:

sh: /etc/mysql/my.cnf: В доступе отказано

вместе с трассировкой, в которой говорится, что setup.py не может найти файл.

Обратите внимание, что сценарий setup.py ищет файл mysql_config в каталогах $ PATH по умолчанию, но файл конфигурации mysql для нашего сервера /etc/mysql/my.cnf, поэтому я изменил файл site.cfg пакетачтобы соответствовать.Я проверил разрешения для файла, которые являются -rw-r - r--.Я попытался запустить скрипт от имени пользователя root и получил ту же ошибку.

Есть предложения?

Ответы [ 2 ]

2 голосов
/ 10 ноября 2010

Насколько я знаю, между "mysql_config" и "my.cnf" есть очень существенная разница.

  • «mysql_config» обычно находится в папке «bin» вашей установки MySQL и при выполнении выдает различную информацию о расположении файловой системы о вашей установке.

  • "my.cnf" - это скрипт конфигурации, используемый самой MySQL.

Короче говоря, когда скрипт запрашивает «mysql_config», его следует понимать буквально как исполняемый файл с именем «mysql_config», а не как текстовый файл конфигурации, который вы передаете. MYSQLdb нужен файл "mysql_config", чтобы он знал, какие библиотеки использовать. Вот и все. Он не читает вашу конфигурацию MySQL напрямую.

Ошибки, с которыми вы сталкиваетесь, можно записать;

  1. Он пытается открыть неправильный файл и сталкивается с проблемой разрешения.

  2. Даже после того, как он попытался открыть этот файл, он все равно не может найти файл «mysql_config».

Отсюда вам нужно найти папку «bin» вашей инсталляции MySQL и проверить, что она содержит «mysql_config». Затем вы можете отредактировать путь к папке в файле "site.cnf", и все будет хорошо.

0 голосов
/ 10 ноября 2010

Вы уверены, что файл не задан жестко в какой-то другой части процесса сборки?Почему бы просто не добавить его в $ PATH на время сборки?

Нужно ли сценарию записывать этот файл по какой-то причине?Использует ли скрипт сборки su или sudo, чтобы попытаться стать каким-то другим пользователем?Вы абсолютно уверены как в разрешениях, так и в том, что вы запускали скрипт от имени root?

Это действительно странная вещь, если вы до сих пор не можете добраться до нее.Вы используете chroot или virtualenv?

...