2016-08-06 20 views
1

Я прочитал некоторые из соответствующих тем и пытался реализовать эти решения к моей ситуации, но все же я получаю следующее сообщение об ошибке после этой команды:Получение ошибки при построении MySQL для питона на Mac OS X El Capitan

(project2_env) Efe-MacBook-Air:MySQL-python-1.2.4b4 efe$ python setup.py build

сообщение об ошибке:

Extracting in /var/folders/rv/vbf7xqh1601_xjkrn85w7hp00000gn/T/tmpptpsggg7 
Traceback (most recent call last): 
    File "/Users/efe/virtualenvs/downloads/MySQL-python-1.2.4b4/distribute_setup.py", line 143, in use_setuptools 
    raise ImportError 
ImportError 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "setup.py", line 7, in <module> 
    use_setuptools() 
    File "/Users/efe/virtualenvs/downloads/MySQL-python-1.2.4b4/distribute_setup.py", line 145, in use_setuptools 
    return _do_download(version, download_base, to_dir, download_delay) 
    File "/Users/efe/virtualenvs/downloads/MySQL-python-1.2.4b4/distribute_setup.py", line 125, in _do_download 
    _build_egg(egg, tarball, to_dir) 
    File "/Users/efe/virtualenvs/downloads/MySQL-python-1.2.4b4/distribute_setup.py", line 99, in _build_egg 
    _extractall(tar) 
    File "/Users/efe/virtualenvs/downloads/MySQL-python-1.2.4b4/distribute_setup.py", line 486, in _extractall 
    self.chown(tarinfo, dirpath) 
TypeError: chown() missing 1 required positional argument: 'numeric_owner' 

Edit: Я переустановил homebrew, то я запускаю эту команду. Это успешно установлено.

brew install mysql 

Однако я не могу импортировать MySQLdb в python.

ответ

0

Взятые из Python2 doc, все еще актуальна в 3.5:

«Альтернативные установки: схема пользователя

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

python setup.py install --user 

Может помочь в вашем случае.

Примечание Существуют различные схемы для использования: --home или --prefix и --exec-префикс, или --install-базу и --install-platbase

+0

все еще я получаю ту же самую точную ошибку –

+0

может попробовать: 'python setup.py install --home'. Кажется, вы столкнулись с проблемой разрешения, но я не знаю, что делать дальше. – technico

+0

снова не работал. в любом случае, спасибо. –

1

Как это более сложным, чем предыдущий ответ, я не расскажу вам о пользовательской установке python mysql.

Нашел, путь в Джуда:

Установите MySQL через доморощенного, то вы можете установить его с помощью питона пип.

xcode-select --install 
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 
//don't know how to install mysql via homebrew, but it should be done here 
pip install MySQL-python 

https://stackoverflow.com/a/25356073/6660122

+0

Получается, что я уже доморощенный. Затем я попробовал «pip install MySQL-python», но теперь у меня возникла другая ошибка: «Command» python setup.py egg_info «не удалось с кодом ошибки 1 в/private/var/folders/rv/vbf7xqh1601_xjkrn85w7hp00000gn/T/pip -build-yi9i16p8/MySQL-python/' –

+1

Вам удалось (повторно) установить mysql через homebrew раньше? – technico

+0

Я удалил homebrew, а затем снова установил его. После этого я снова попробовал эту команду: 'pip install MySQL-python', и я получил новую ошибку:' -bash:/Users/efe/virtualenvs/project2_env/bin/pip:/Users/efe/virtualenvs/project2_env/bin/python3: плохой интерпретатор: нет такого файла или каталога. –

0

Наконец я нашел решение для себя и сам. Я отказался от использования непосредственно библиотеки MySQLdb, и вместо этого я установил PyMySQL. Кстати, я уже установил MySQL Workbench раньше, так что сервер mysql уже запущен.

Вот что я делаю шаг за шагом. Надеюсь, кто-то может получить от этого выгоду.

1) Создание виртуальной среды:

virtualenv virt1 

2) Сделать активированную виртуальная среда:

source virt1/bin/activate 

3) Теперь, когда вы находитесь в виртуальной среде. Установите PyMySQL:

pip install PyMySQL 

4) Теперь попробуйте ли в порядке подключение к MySQL или не с простым пй исполняемым:

#!/usr/bin/python 

import pymysql.cursors 

# Connect to the database 
connection = pymysql.connect(host='localhost', 
          user='YourDBuserName', 
          password='YourDBpassword', 
          db='YourDBname', 
          charset='utf8', 
          cursorclass=pymysql.cursors.DictCursor) 

try: 
    with connection.cursor() as cursor: 
     # Read a single record 
     sql = "SELECT `id`, `name` FROM `YourTableName` WHERE `id`=%s" 
     cursor.execute(sql, (1,)) 
     result = cursor.fetchone() 
     print(result) 
finally: 
    connection.close() 

5) Вы должны увидеть, что ваша первая строка из таблицы появляется на экран.

Примечание: Часть "import pymysql.cursors" может быть сложной задачей. Во-первых, я написал как «import PyMySQL.cursors», и это не сработало!