Instalar MySQL para Python (MySQLdb) em Windows

Atualização (08/06/2011):

Acessar este outro post: http://blog.victorjabur.com/2011/06/08/compiling-mysqldb-1-2-3-on-windows-32-and-64-without-need-the-mysql-database-5-5-installed/

————————————————————————————————————-

Solução 1 – Instalação através de arquivos Egg

1 – Passos para instalar o setuptools, se você ainda não tiver instalado:

  1. Instalar o Setup Tools do Python (Instalador de pacotes em Python) – Download Aqui
  2. Incluir na sua Variável de Sistema PATH, o seguinte diretório: “C:\Python27\Scripts”
  3. Incluir na sua Variável de Sistema PATH, o seguinte diretório: “C:\Python27”

2 – Fazer o download dos arquivos egg abaixo, de acordo com sua versão de python e sistema operacional:

Versões para MySQLdb 1.2.3 e Windows 32 bits

MySQL_python-1.2.3-py2.6-win32.egg
MySQL_python-1.2.3-py2.7-win32.egg

Versões para MySQLdb 1.2.3 e Windows 64 bits:

(Em breve)

3 – Abrir um command DOS, acessar a pasta no qual os arquivos egg se encontram e executar o seguinte comando e pronto !

easy_install MySQL_python-1.2.3-py2.6-win32.egg
ou
easy_install MySQL_python-1.2.3-py2.7-win32.egg

—————————————————————————————–

Solução 2 – Alguns arquivos binários (.exe) que encontrei na web.

http://www.codegood.com/archives/4

—————————————————————————————–

Solução 3 – Preparando seu ambiente para compilar código fonte C, com esta opção você será capaz de compilar qualquer código pthon necessário para o MySQLdb e outros plugins. (um pouco trabalhoso).

O MySQLdb é um pacote desenvolvido em python, que possibilita o acesso ao banco de dados MySQL.

A missão deste post é ensinar como instalar o MySQLdb, em um ambiente Windows:
Este pacote não possui arquivo binário para instalação em um ambiente Windows, conforme a própria documentação nos diz:

Windows
…….
I don’t do Windows. However if someone provides me with a package for
Windows, I’ll make it available. Don’t ask me for help with Windows
because I can’t help you.

Portanto, será necessário compilar o código fonte em C, para só então conseguir instalar o MySQLdb.

Se fosse em Linux, Ubuntu, por exemplo, este pacote seria instalado com um simples comando: apt-get install python-mysqldb

Mas em Windows dá um trabalhinho, vamos ao trabalho:

1 – Pré-Requisitos:

  • Instalar o Microsoft Visual C++ Express Edition 2010 – Download Aqui (Algumas pessoas relatam que conseguiram compilar com o Cygwin e o Mingw, mas eu não consegui)
  • Ter o python instalado – Download Aqui
  • Ter o banco de dados MySQL instalado – Download Aqui
    • Importante: Selecionar para instalação a opção: Developer Components (Custom Setup), se você já tem o banco instalado, pode instalar este item como adicional, sem problemas.
  • Após Instalar o Microsoft Visual C++ Express Edition 2010, criar uma variável de ambiente:
    1. Botão Direito do Mouse em cima de “Meu Computador” -> Propriedades -> Avançado -> Variáveis de Ambiente -> Nova
    2. Nome da Variável: VS90COMNTOOLS
    3. Valor da Variável: C:\Arquivos de programas\Microsoft Visual Studio 10.0\Common7\Tools\ (Coloque o seu caminho de instalação, se for diferente deste)
  • Instalar o Setup Tools do Python (Instalador de pacotes em Python) – Download Aqui
  • Incluir na sua Variável de Sistema PATH, o seguinte diretório: “C:\Python27\Scripts”
  • Incluir na sua Variável de Sistema PATH, o seguinte diretório: “C:\Python27”
  • Fazer o download do MySQLdb aqui: Download Aqui e descompactar em qualquer diretório
  • Editar o arquivo site.cfg (na pasta descompactada), para a sua versão de banco de dados MySQL, escolha uma das opções abaixo:
    • “registry_key = SOFTWARE\MySQL AB\MySQL Server 5.0”
    • “registry_key = SOFTWARE\MySQL AB\MySQL Server 5.1”

2 – Instalando:

  1. Abrir um prompt do Dos
  2. Acessar a pasta descompactada (Comando cd)
  3. Executar o comando: setup.py build (Não deve aparecer nenhuma mensagem de erro)
  4. Executar o comando: setup.py install
  5. Abrir o Shell do Python e testar se a instalação funcionou, digitando o seguinte comando: import MySQLdb
    • Se funcionar não aparecerá mensagem nenhuma
    • Em caso de erro, aparecerá algo do tipo:
    • Traceback (most recent call last):
      File “”, line 1, in
      ImportError: No module named “pacote”

Créditos deste Post ao Yun Fu: http://www.fuyun.org/2009/12/install-mysql-for-python-on-windows/

Bom Pessoal, vou ficar por aqui, espero que vocês consigam instalar, apanhei bastante e por isso resolvi fazer este post.

Até a Próxima.

Victor Jabur

Advertisements

10 thoughts on “Instalar MySQL para Python (MySQLdb) em Windows

  1. PUTAQUEPARIU, eu tava apanhando mais que palmeirense no meio da Gaviões dea Fiel pra instalar isso no Win7 64, tava dando uns erros de linking ao compilar a lib.
    Eu tava com o MySQL Essentrials, e não tem os Developer Components. To baixando o outro MySQL, espero que seja isso.
    Que coisa mais tosca, quero instalar o módulo do python pra conectar em um server remoto, e pra isso tenho que ter o server na minha máquina -.-

  2. Bom, achei o que eu estava fazendo de errado. Vou compartilhar, à fins de experiência.
    Primeiro, dava um erro:

    serverKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, options[‘registry_key’])
    WindowsError: [Error 2] The system cannot find the file specified

    Isso, como o colega mencionou acima, era editar o arquivo site.cfg.
    Resolvido isso, veio o outro problema: Durante a compilação do módulo, 56 Unresolved Externals no processo de linking.
    Tentei tudo que é coisa, desde usar o MySQL Full ao invés do Essentials, até migrar do MSVC++ 2008 pro MSVC++ 2010.
    Nada.
    O problema é que eu tava em um Win 64, com um MySQL 64, e não sei ainda PORQUE, um Python 32. Aí, as libs do Python eram 32 e davam pau com as 64 do MySQL.
    O Correto seria colocar um Python 64 também! Mas como ele tá funcionando bunitinhu, e MySQL dificilmente vou usar local, coloquei um MySQL 32.

    Bah, quase tive um orgasmo quando esse negócio compilou sem erros.
    Mas minha comemoração foi muito cedo, veio mais um erro:

    build\temp.win32-2.6\Release\_mysql.pyd.manifest : general error c1010070: Failed to load and parse the manifest. O sistema não pode encontrar o arquivo especificado.
    error: File ‘mt.exe’ not found.

    Então, abri C:\Python26\Lib\distutils\msvc9compiler.py e procurei por “MANIFESTFILE”.
    Localizei a linha
    ld_args.append(‘/MANIFESTFILE:’ + temp_manifest)
    e embaixo dela adicionei
    ld_args.append(‘/MANIFEST’)

    Rodei novamente python setup.py install
    Compilou.
    Aì, tentei o import:

    >>> import MySQLdb
    >>

    AEEEEEEEEEEEEEPORRADOCARALHO!!!!!!!!!!!!!!!!!!!!!!!!!!

    1. Boa Fernando,

      Obrigado por compartilhar seus problemas e soluções.

      Você me fez lembrar de um ponto importante que faltou no meu Post, a parte do Manifest, realmente tinha esquecido de postar esse passo aqui.

      Vou organizar este post em 3 soluções: solução 1: vou disponibilizar todos os eggs para instalação (32 bits e 64 bits), solução 2, vou manter aquele link com os binários e solução 3:
      Vou manter toda a parte de build e compilação, é muito massante, os eggs vão resolver bastante.

      Se você quiser me ajudar, estou tentando gerar os binários , aqueles instaladores default do python com tela azul e tal.

      mas com os eggs não fica tão complicado tb, … é só digitar easy_install arquivo.egg e pronto, bem melhor né ?

  3. cara eu to tentando criar um hack dll e ta dando esse erro na compilaçao > general error c1010070: Failed to load and parse the manifest. O sistema nco pode encontrar o arquivo especificado.<

  4. Victor…a igreja deveria te canonizar…Me ajudou muito!
    Os outros tutoriais que eu usei na net eram 1 bilhão de vezes mais dificeis e nada eficientes…vlw!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s