Marcos Sousa’s Blog

Blog sobre desenvolvimento de software
  • rss
  • Home
  • Sobre

Instalar o driver Mysql para Python no Mac Snow Leopard

Marcos Sousa | January 2, 2010

Já tem algum certo tempo que gostaria de compartilhar esta experiência. Durante os tempos vagos, estou buscando além de ler livros, estou também buscando conhecer novas linguagens. Sempre que posso estou dedicando um certo tempo para aprender algo a mais em Ruby e Python. Como desenvolvi na grande maioria dos casos para web, escolhi o Ruby on Rails e Django como o foco inicial dos estudos.

O meu primeiro problema encontrado com Python foi quando eu pensei em persistir os dados no Mysql. É uma tarefa relativamente simples, porém devido a versão incorreta do Mysql para a versão do sistema operacional, colocar o driver no “classpath” do python me rendeu uma certa dor de cabeça. Usando o Mac OS X 10.6, também conhecido como Snow Leopard, eu tinha o Mysql a versão x86 instalada. O correto é ter a versão x86_x64.

Como um bom desenvolvedor preguiçoso, resolvi criar um script shell para não ter problemas ao ter que reinstalar o driver em novas ocasiões. Seguindo as recomendações iniciais do site oficial do driver a primeira versão do script foi algo semelhante, ao script abaixo:

1
2
3
4
5
6
7
#!/usr/bin/env bash

curl -o MySQL-python-1.2.3c1.tar.gz http://ufpr.dl.sourceforge.net/project/mysql-python/mysql-python-test/1.2.3c1/MySQL-python-1.2.3c1.tar.gz
tar -vzxf MySQL-python-1.2.3c1.tar.gz
cd MySQL-python-1.2.3c1
python setup.py build
python setup.py install

É importante lembrar que é preciso ter o gcc para executar o script acima. Para isto basta instalar o XCode disponível como pacote opcional no DVD de instalação do mac, ou baixado através da página de download oficial. Executando a instrução abaixo para certificar que a instalação foi bem sucedida

1
>>> import MySQLdb

Me deparei com o seguinte erro:

1
2
3
4
5
6
7
8
import sys, pkg_resources, imp
Traceback (most recent call last):
File “”, line 1, in
File “MySQLdb/__init__.py”, line 19, in
import _mysql
File “build/bdist.macosx-10.5-x86/egg/_mysql.py”, line 7, in
File “build/bdist.macosx-10.5-x86/egg/_mysql.py”, line 6, in __bootstrap__
ImportError: dynamic module does not define init function (init_mysql)

Após olhar atentamente a documentação do driver, listas de discussões e blogs notei que a versão do Mysql era origem do problema. Diante disso, criei um script para desinstalar o mysql:

1
2
3
4
5
6
7
8
9
#!/usr/bin/env bash
/Library/StartupItems/MySQLCOM/MySQLCOM stop
rm /usr/local/mysql
rm -rf /usr/local/mysql*
rm -rf /Library/StartupItems/MySQLCOM
rm -rf /Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
# Editar o arquivo /etc/hostconfig e remover a linha MYSQLCOM=-YES-

Feito isto, instalei novamente o Mysql na versão 5.5 x86_x64. Depois disso, apenas para certificar que estava executando o script correto, adicionei uma flag dizendo a versão para qual o driver era destinado. As duas últimas linhas do primeiro script foram substituídas por estas:

1
2
ARCHFLAGS='-arch x86_64' python setup.py build
ARCHFLAGS='-arch x86_64' python setup.py install

Nota: apenas desinstalar o mysql que requer a execução como super usuário.

Fica a dica para que possa ajudar alguém que esteja iniciando e que encontre o mesmo problema. ;)

Categories
Django, Python
Tags
Django, driver, mysql, Python, python-mysql-driver
Comments rss
Comments rss
Trackback
Trackback

« Balanço Agile Conference 2009 Como instalar o Macports no Mac Snow Leopard »

3 Responses to “Instalar o driver Mysql para Python no Mac Snow Leopard”

  1. felipe tonello says:
    January 5, 2010 at 3:02 pm

    O que eu fiz para funcionar foi instalar o Bundle de desenvolvimento do 10.4. Esse Bundle vem no XCode, e na instalação você pode selecionar isso.

    Reply
    • Marcos Sousa says:
      January 6, 2010 at 10:23 am

      Olá Felipe,

      Valeu pela dica. Depois vou testar sua solução também.

      Reply
  2. Fernando says:
    December 23, 2011 at 2:41 am

    Tentei rodar esse script mas nao funcionou, ocorreu um erro quando fui executer o ‘python setup.py build’ e ‘python setup.py install’, e o erro foi o seguinte

    “from setuptools import setup, Extension
    ImportError: No module named setuptools”

    vc sabe o que é isso e como resolver?

    Reply

Leave a Reply

Click here to cancel reply.

Núvens de tags

Agile Eventos Facelets GET Hibernate incompatiblidades Itext Java Java EE Java Magazine Java Server Faces JavaServer Faces Java Vídeo Magazine Jboss jboss-seam-itext Jboss Developer Studio Jboss Seam JDBC type: 7 JPA JSF linux mare marébh maré de agilidade Microsoft No Dialect mapping for JDBC type: 7 Page Actions PostGreSQL RHDS rich:fileUpload RichFaces Rich Faces RichFaces 3.2 Scrum Seam-gen Seam Framework Seam PDF Spring Spring Framework TDD URL Rewrite URL User Friendly Variable Resolver Vídeo Aula XP

Meus últimos tweets

  • Great article about the importance of sleeping. http://t.co/vfFyS1ri 1 day ago
  • Aos participantes do Bhjs que gostariam de vir para a Globo.com, segue as outras vagas http://t.co/KjBinf4x #bhjs #beagajs 2 weeks ago
  • Se você precisa buscar dado no disco, prefira assíncrona @luciano #bhjs #beagajs http://t.co/5gCHp7P8 2 weeks ago
  • @DouglasAguiar @HerberthAmaral Porque na copa? 2 weeks ago
  • Slides da palestra 'Indo além com jQuery' #bhjs #beagajs http://t.co/wHbhaI75 2 weeks ago
  • @araujolucas na parte da frente a temperatura está melhor 2 weeks ago
  • Começando a palestra do @cmilfont no #bhjs #beagajs http://t.co/9DZt7MQj 2 weeks ago
  • @isaias_barroso @DeivissonBruno @cmilfont gula ao extremo:) 2 weeks ago
  • Palestra com insights do desenvolvimento do paparazzo #gcom #bhjs #beagajs http://t.co/7igVbtmS 2 weeks ago
  • @flavio1110 energético? 2 weeks ago

Anúcios

Categorias

  • .net
  • Agile
  • Agile Conference 2009
  • Artigos
  • Atualidades
  • c++
  • cinema
  • Django
  • DRY
  • Eventos
  • Flex
  • Formula 1
  • Hibernate
  • IDE
  • Inutilidades
  • Java
  • Java EE
  • Java Server Faces
  • Jboss Seam
  • linux
  • Mac OS
  • Microsoft
  • Open-source
  • Palestras
  • Python
  • RAD
  • RIA
  • RichFaces
  • Scrum
  • Software Livre
  • Spring
  • Spring Annotations
  • TDD
  • Testes
  • Uncategorized
  • Vídeo Aulas

Links recomendados

  • AJ Soluções
  • Ary Júnior
  • Erko Bridee
  • Fragmental
  • Fragmental TW
  • Guilherme Chapiewski
  • Handerson Frota
  • Jeveaux
  • Juliano Carniel
  • Onipresente
  • Passes de Letra
  • PortalJava.com
  • Rafael Carneiro
  • Rafael Pontes

DevMedia Post’s

Get Adobe Flash playerPlugin by wpburn.com wordpress themes
rss Comments rss valid xhtml 1.1 design by jide powered by Wordpress get firefox