Integrando MySQL com Python no Windows

102

Estou achando difícil usar o MySQL com Python no meu sistema Windows.

Atualmente, estou usando Python 2.6. Eu tentei compilar o código-fonte MySQL-python-1.2.3b1 (que supostamente funciona para Python 2.6?) Usando os scripts de configuração fornecidos. O script de configuração é executado e não relata nenhum erro, mas não gera o módulo _mysql.

Também tentei configurar o MySQL para Python 2.5 sem sucesso. O problema de usar o 2.5 é que o Python 2.5 é compilado com o visual studio 2003 (instalei-o usando os binários fornecidos). Tenho o Visual Studio 2005 no meu sistema Windows. Conseqüentemente, setuptools não consegue gerar o módulo _mysql.

Qualquer ajuda ?

Sammy
fonte
2
Já que 3 anos se passaram desde que isso foi perguntado, e 2 anos desde a última resposta votada, consulte a resposta atualizada para Python 3.2 abaixo (ou consulte wiki.python.org/moin/MySQL )
Eran Medan

Respostas:

127

Página de download para python-mysqldb . A página inclui binários para versões de 32 e 64 bits do Python 2.5, 2.6 e 2.7.

Também há uma discussão sobre como se livrar do aviso de suspensão de uso .

ATUALIZAÇÃO : Esta é uma resposta antiga. Atualmente, eu recomendaria usar PyMySQL. É python puro, portanto, suporta todos os sistemas operacionais igualmente, é quase um substituto imediato para o mysqldb e também funciona com o python 3. A melhor maneira de instalá-lo é usando pip. Você pode instalá-lo aqui (mais instruções aqui ) e, em seguida, executar:

pip install pymysql
itsadok
fonte
Alguém pode confirmar se o primeiro executável vinculado funciona com Python 2.6? A tela inicial da instalação diz que é apenas 2,5 - mas estou presumindo que a pessoa que a construiu pode simplesmente não ter atualizado essa linha de documentação.
John C de
Eu instalei o python 2.7 x64, mas ao importar o MySQLdb estou recebendo o erro 'ImportError: Nenhum módulo chamado _mysql_windows.api'. pls alguém me ajude a resolver esse problema.
Vilva
4
Bem depois de fazer pip install pymysql, syncdbainda reclamou da falta do MySQLdbmódulo.
Shailen de
enquanto executo este comando no meu sistema Windows 8.1 de 64 bits, ele mostra: Traceback (última chamada mais recente): Arquivo "C: \ Python33 \ Scripts \ pip-script.py", linha 5, em <module> de pkg_resources import load_entry_point ImportError: Nenhum módulo chamado 'pkg_resources'
hizbul25
@shailenTJ (e qualquer pessoa com um problema semelhante) olhe aqui
itsadok
31

Isso pode parecer um conselho do seu avô, mas todas as respostas aqui não mencionam a melhor maneira: vá e instale o ActivePython em vez dos binários do Windows python.org. Eu realmente estava me perguntando por um longo tempo por que o desenvolvimento de Python no Windows era tão pita - até que instalei o ActiveState Python. Eu não sou afiliado a eles. É apenas a pura verdade. Escreva em todas as paredes: Desenvolvimento Python no Windows = ActiveState ! você então apenas pypm install mysql-pythone tudo funcione bem. sem orgia de compilação. sem erros estranhos. sem terror. Basta começar a programar e fazer um trabalho real após cinco minutos. Esta é a única maneira de entrar no Windows. Realmente.

Gorgonzola Balistico Refurbo B
fonte
2
Seria uma solução perfeita se a assinatura da Business Edition não fosse necessária ...
Matheus Moreira
4
@ matheus.emm - Business Edition não é necessário para instalar o MySQLdb no Windows de 32 bits.
Sridhar Ratnakumar
7
@ matheus.emm - Para acesso gratuito, você pode instalar o ActivePython de 32 bits em seu sistema operacional Windows 7 de 64 bits e depois instalar o mysql-python. O ActivePython de 64 bits requer uma assinatura BE para instalar pacotes.
Sridhar Ratnakumar,
2
Este é um ótimo conselho. Acho que a Business Edition vale a pena se você estiver usando Python seriamente na produção. Se você economizar algumas horas de trabalho por mês, ele se paga. Todas essas dores de cabeça de configuração me fazem lembrar do modelo de negócios de código aberto: "Dê a eles o software gratuitamente, mas torne-o tão difícil de instalar e usar que eles precisam comprar o manual e / ou suporte." O único problema é que muitos desses projetos não estão fornecendo ou vendendo suporte porque veem o código aberto como uma ideologia, em vez do que deveria ser, um modelo de negócios. lolz
Dana Holt
1
Apenas instalei usando a edição da comunidade do activepython e funcionou como um encanto. Altamente recomendado
Cleber Gonçalves
15

Como novato em Python, aprendendo o ecossistema Python, acabei de concluir isso.

  1. Instruções de instalação das ferramentas de configuração

  2. Instale o MySQL 5.1. Baixe o MSI de 97,6 MB aqui. Você não pode usar a versão essencial porque ela não contém as bibliotecas C.
    Certifique-se de selecionar uma instalação personalizada e marcar as ferramentas / bibliotecas de desenvolvimento para instalação, pois isso não é feito por padrão. Isso é necessário para obter os arquivos de cabeçalho C.
    Você pode verificar se fez isso corretamente procurando no diretório de instalação uma pasta chamada "include". EG C: \ Arquivos de programas \ MySQL \ MySQL Server 5.1 \ include. Ele deve ter um monte de arquivos .h.

  3. Instale o Microsoft Visual Studio C ++ Express 2008 a partir daqui. Isso é necessário para obter um compilador C.

  4. Abra uma linha de comando como administrador (clique com o botão direito do mouse no atalho do Cmd e depois "execute como administrador". Certifique-se de abrir uma nova janela depois de instalar essas coisas ou seu caminho não será atualizado e a instalação ainda falhará.

  5. No prompt de comando:

    easy_install -b C: \ temp \ somethingempdir mysql-python

    Isso irá falhar - o que está OK.

    Agora abra site.cfg em seu diretório temporário C: \ temp \ somethingempdir e edite a configuração "registry_key" para:

    registry_key = SOFTWARE \ MySQL AB \ MySQL Server 5.1

    agora coloque um CD em seu diretório temporário e:

    python setup.py clean

    python setup.py install

    Você deve estar pronto para o rock!

  6. Aqui está um script super simples para começar a aprender a API de banco de dados Python para você - se precisar.

Comunidade
fonte
7

Encontrei um local onde uma pessoa construiu mysql para python2.6 com sucesso, compartilhando o link http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe

... você pode ver um aviso ao importar MySQLdb, o que é bom e não prejudica nada,

C: \ Python26 \ lib \ site-packages \ MySQLdb__init __. Py: 34: DeprecationWarning: o módulo sets está obsoleto em sets import ImmutableSet


fonte
5

E quanto ao pymysql ? É Python puro e usei-o no Windows com considerável sucesso, contornando as dificuldades de compilar e instalar mysql-python.

JasonFruit
fonte
2

Os binários pré-compilados em http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python acabaram de funcionar para mim.

  1. Abra o MySQL_python-1.2.5-cp27-none-win_amd64.whlarquivo com o programa extrator zip.
  2. Copie o conteúdo para C:\Python27\Lib\site-packages\
Guneysus
fonte
2

Você pode tentar usar myPySQL. É muito fácil de usar; nenhuma compilação para windows, e mesmo se você precisar compilá-lo por algum motivo, você só precisa Python e Visual C instalados (não mysql).

http://code.google.com/p/mypysql/

Boa sorte

Gustavo vargas
fonte
1

Como estou executando o python em um virtualenv (pylons / pirâmide), não pude executar os instaladores binários (de forma útil) vinculados anteriormente.

Tive problemas ao seguir as etapas com a resposta de Willie, mas determinei que o problema é (provavelmente) que estou executando a instalação do Windows 7 x64, que coloca a chave de registro para mysql em um local ligeiramente diferente, especificamente no meu caso (nota: eu estou executando a versão 5.5) em: "HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ MySQL AB \ MySQL Server 5.5".

NO ENTANTO, "HKEY_LOCAL_MACHINE \" não pode ser incluído no caminho ou irá falhar.

Além disso, tive que reiniciar entre as etapas 3 e 4.

Depois de trabalhar com tudo isso, IMO, teria sido mais inteligente executar todo o ambiente python dev a partir do cygwin.

Evan
fonte
0

Você também pode querer considerar fazer uso do Cygwin , ele tem bibliotecas python mysql no repositório.

Ifaraone
fonte
0

Você também pode usar o pyodbc com o MySQL Connector / ODBC para usar o MySQL no Windows. Unixodbc também está disponível para tornar o código compatível no Linux. O Pyodbc usa o padrão Python DB API 2.0, portanto, se você ficar com essa alternância entre os drivers MySQL / PostgreSQL / SQLite / ODBC / JDBC, etc., deve ser relativamente fácil.

Fijiaaron
fonte
0

Enjoou dos problemas de instalação com o MySQLdb e tentei o pymysql .

Fácil configuração;

git clone https://github.com/petehunt/PyMySQL.git
python setup.py install

E as APIs são praticamente as mesmas.

Daniel Magnusson
fonte