Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

mysql-python:construindo um _mysql.so completamente autônomo no Mac OS X?


Não importa, descobri-me depois de um pouco mais de escavação. É bem simples, na verdade; Vou registrar a solução aqui caso alguém precise:

  1. Obtenha o tarball fonte do MySQL em mysql.com (não o tarball binário específico da plataforma)

  2. Descompacte-o, execute ./configure com quaisquer opções que atendam aos seus propósitos, mas você precisará de --enable-static . Só para ter certeza, incluí --disable-shared , embora possa não ser estritamente necessário. Eu usei o seguinte, o seu pode ser diferente em outros aspectos:

    (Em relação aos parâmetros de charset e collation aqui:eles podem ser completamente desnecessários neste caso de uso, já que vou excluir o MySQL depois, mas como todas as conexões do cliente usam algum charset/collation, estou cobrindo minhas bases UTF-8 -wise apenas no caso do charset/collation padrão usado pelo MySQLdb ser afetado por como _mysql.so é compilado - homens mais sábios do que eu podem querer confirmar isso de uma forma ou de outra.)

  3. Obtenha o tarball de origem mais recente do mysql-python em http://pypi.python.org/pypi /MySQL-python

  4. Descompacte-o e em site.cfg set static = True e mysql_config = /usr/local/mysql-src/bin/mysql_config (ou qualquer caminho que você escolheu durante configure ).

  5. Execute o python setup.py build . Alguns erros relacionados à arquitetura podem aparecer no final da compilação, mas podem ser ignorados.

  6. Execute sudo python setup.by install . Isso cria um .egg em seus site-packages e o adiciona ao arquivo easy_install.pth.

  7. Você Terminou! Agora você pode excluir todos os rastros do MySQL, bem como as fontes mysql-python. O ovo pode ser copiado como está para outros Macs executando a mesma versão do OS X. Estou feliz em copiá-lo para vários ambientes virtuais criados com virtualenv enquanto falamos.

Isso funcionou no 10.5, vou testá-lo no 10.6 em breve e, se algo precisar ser feito de forma diferente, informe os resultados aqui.