Я не могу для жизни меня изобразить этот. Я весь день ищу в Интернете, и все ресурсы кажутся ужасно устаревшими. Из того, что я могу сказать, заставить MySQLdb и Python играть хорошо вместе, довольно сложно. Я догадался об этом, и я не уверен, как двигаться дальше.MySQLdb и Python ImportError
Во-первых, я бегу на Python 2.7
Я получаю ошибку, когда я пытаюсь запустить «импорт MySQLdb» в прямом эфире переводчика заключается в следующем:
ImportError: this is MySQLdb version (1, 2, 2, 'final', 0), but _mysql is version (1, 2, 5, 'final', 1)
Я также вижу следующие журналы ошибок когда я запускаю «pip install mysql-python», однако я не уверен, что thats jsut связано с неправильной совпадением версии. http://pastebin.com/hqVv6aPZ
У меня есть проект python, который имеет зависимость от MySQLdb, и я пытаюсь получить virtualenv, из которого я запускаю Python, чтобы правильно установить пакет. Это то, что я сделал:
- Я построил MySQL из источника, чтобы убедиться, что у меня есть 64-битная совместимая версия MySQL на моей машине. Для этого я использовал флаг -universal.
- Я также подтвердил, что я запускаю 64-битную версию Python.
- MySQL пришел из Homebrew
- MySQL-питона пришел из пип
Я не могу за жизнь мне понять, что делать здесь. Кажется, что есть только некорректная версия версии MySQLdb и _mysql на моей машине. Это так? Если это решение просто переустанавливает старую версию MySQL? Похоже, что когда я принуждаю pip к установке версии 1.2.5 mysql-python, он устанавливает версию 1.2.2 MySQLdb, поэтому я теряюсь относительно того, что делать здесь, потому что я не уверен, какой пакет из homebrew фактически коррелирует с версия 1.2.5 для _mysql.
EDIT -
sys.path
'/Users/XXXXXXXXXXX/virtualenvs/qa-automated-tests/lib/python27.zip',
'/Users/XXXXXXXXXXX/virtualenvs/qa-automated-tests/lib/python2.7',
'/Users/XXXXXXXXXXX/virtualenvs/qa-automated-tests/lib/python2.7/plat-darwin',
'/Users/XXXXXXXXXXX/virtualenvs/qa-automated-tests/lib/python2.7/plat-mac',
'/Users/XXXXXXXXXXX/virtualenvs/qa-automated-tests/lib/python2.7/plat-mac/lib-scriptpackages', '/Users/XXXXXXXXXXX/virtualenvs/qa-automated-tests/Extras/lib/python',
'/Users/XXXXXXXXXXX/virtualenvs/qa-automated-tests/lib/python2.7/lib-tk',
'/Users/XXXXXXXXXXX/virtualenvs/qa-automated-tests/lib/python2.7/lib-old',
'/Users/XXXXXXXXXXX/virtualenvs/qa-automated-tests/lib/python2.7/lib-dynload',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
'/Users/adam.stark/virtualenvs/qa-automated-tests/lib/python2.7/site-packages'
Python --version говорит, что я нахожусь на версии 2.7.5. Я также установил пастебин для публики. Я просто не уверен, что именно уместна информация в этом дампе, он отплевывает 16 ошибок.
В любом случае, вы используете предустановленный Python от Apple? Домашний питон? Другой Python, как двоичный установщик python.org? Что делают 'какие python' и' which pip' из оболочки? Как насчет 'import sys; print sys.executable, sys.path' внутри Python? – abarnert
Кроме того, '_mysql' не является частью MySQL, это часть MySQLdb. Как-то у вас есть часть MySQLdb 1.2.2.0 и часть 1.2.5.1. Я предполагаю, что либо (а) у вас есть 1.2.2.0 в ваших системных сайтах-пакетах, а затем вы установили 1.2.5.1 в свою виртуальную среду, но только частично ее установили, или (б) у вас как-то получилось два разные установки Python 2.7, разделяющие часть своих пакетов-сайтов, а первый «пип» и первый «питон» на вашем PATH - это разные установки Python. – abarnert
Я обновил свой вопрос, чтобы отразить информацию, которую вы просили. sys.executable указывает на мой virtualenv, а sys.path был создан из PyDev, поэтому большинство содержащихся в нем ссылок также указываются на virtualenv, несколько указывают на System/Library/Frameworks/Python.framework/Versions/2.7. Я также включил местоположение сайтов в sys.path. – Xenology