Instalação do MySQLdb + Django + Mac os 10.6.4

36 views
Skip to first unread message

DiegoMaranhão

unread,
Jun 27, 2010, 1:39:16 AM6/27/10
to Django Brasil
Bom, estou tentando sem sucesso instalar o django no meu mac os.
Primeiro baixei a versão mais recente do python do site oficial, e
instalei.. até ae tudo ok.
MacBook-Pro-de-Diego-Maranhao:MySQL-python-1.2.3 diegomaranhao$ python
Python 2.6.5 (r265:79359, Mar 24 2010, 01:32:55)
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "help", "copyright", "credits" or "license" for more
information.
>>>
Depois fui ao site do mysql e baixei a ultima versão x86_64 e
instalei.. o que tambem funcionou tranquilo..
O problema foi na hora de instalar o MySQLdb, que só utilizando o
README dele não foi suficiente, então segui conforme indicado nesse
site: http://blaolao.com/setting-up-django-mysql-mysql-python-pil-etc
tudo pareceu correr bem seguindo a instalação do MySQLdb conforme esse
site indicava, mas quando fui testar.
>>> import MySQLdb
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "build/bdist.macosx-10.3-fat/egg/MySQLdb/__init__.py", line 19,
in <module>
File "build/bdist.macosx-10.3-fat/egg/_mysql.py", line 7, in
<module>
File "build/bdist.macosx-10.3-fat/egg/_mysql.py", line 3, in
__bootstrap__
ImportError: No module named pkg_resources
>>>

O mesmo ocorre quando tento usar o ipython que foi instalado pelo
easy_install:
$ ipython
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.6/bin/
ipython", line 5, in <module>
from pkg_resources import load_entry_point
ImportError: No module named pkg_resources

Mas quando uso o comando:
$sudo ipython

ele funciona 100%, mas no caso do MySQLdb continua dando erro..

In [1]: import MySQLdb
---------------------------------------------------------------------------
ImportError Traceback (most recent call
last)

/Users/diegomaranhao/Downloads/<ipython console> in <module>()

/Users/diegomaranhao/Downloads/build/bdist.macosx-10.3-fat/egg/MySQLdb/
__init__.py in <module>()

/Users/diegomaranhao/Downloads/build/bdist.macosx-10.3-fat/egg/
_mysql.py in <module>()

/Users/diegomaranhao/Downloads/build/bdist.macosx-10.3-fat/egg/
_mysql.py in __bootstrap__()

ImportError: dlopen(/Users/diegomaranhao/.python-eggs/
MySQL_python-1.2.3-py2.6-macosx-10.3-fat.egg-tmp/_mysql.so, 2): no
suitable image found. Did find:
/Users/diegomaranhao/.python-eggs/MySQL_python-1.2.3-py2.6-
macosx-10.3-fat.egg-tmp/_mysql.so: mach-o, but wrong architecture


Alguém sabe como arrumar esse problema? já procurei em vários lugares
e não achei nada que pudesse me ajudar.
Obrigado.


Victor Pantoja

unread,
Jun 27, 2010, 10:24:21 AM6/27/10
to django...@googlegroups.com
Eu passei por algo semelhante...

Verifique se o sey python está instalado na arquitetura 64 bits ou 32 bits.. O meu estava em 64 e mey mysqldb em 32.

O proprio MySQL deve ser instalado na versão compativel com MySQLdb.

Resumindo, python, mysqldb e mysql devem estar na mesma arqutetura.

abs



--
Django Brasil em Google Groups <http://groups.google.com.br/group/django-brasil>
Associe-se à Python Brasil e suporte nossa comunidade! <http://associacao.python.org.br/>

Francisco Souza

unread,
Jun 27, 2010, 10:26:43 AM6/27/10
to django...@googlegroups.com
Salve,
quando precisei, com esses passos funcionou perfeitamente, mais de uma vez, em máquinas diferentes: http://www.mangoorange.com/2008/08/01/installing-python-mysqldb-122-on-mac-os-x/

Abraços,
Francisco Souza
Software developer at Giran and also full time
Open source evangelist at full time

English: http://www.franciscosouza.net
Portuguese: http://www.franciscosouza.com.br
Twitter: @franciscosouza
+55 27 3026 0264


2010/6/27 DiegoMaranhão <dmar...@gmail.com>

Osvaldo Santana

unread,
Jun 27, 2010, 10:28:13 AM6/27/10
to django...@googlegroups.com
(resposta via celular)

Acrescenta o diretório /usr/local/mysql/bin ao seu PATH antes de rodar
o Python setup install.

O setup.py tenta executar o mysql_config para descobrir onde estão
localizados os headerfiles e bibliotecas client do MySQL.

Valeu,
Osvaldo

> --
> Django Brasil em Google Groups
> <http://groups.google.com.br/group/django-brasil>
> Associe-se à Python Brasil e suporte nossa comunidade!
> <http://associacao.python.org.br/>
>

--
Sent from my mobile device

Curso de Desenvolvimento Web com Python e Django — R$200,00 (12xR$19,00)
http://www.ludeos.com.br/s/triveos-cursos-online

--
Osvaldo Santana Neto -- Triveos Tecnologia
Cel.: +55 41 9244 1646

Evandro Viana

unread,
Jun 27, 2010, 1:49:19 PM6/27/10
to django...@googlegroups.com
http://vianaweb.com.br/2010/02/mysql-python-snow-leopard-2/ 

Depois de instalar o mysql 

2010/6/27 Osvaldo Santana <osan...@triveos.com>



--
Evandro Viana
vianaweb.com.br

DiegoMaranhão

unread,
Jun 28, 2010, 12:17:24 AM6/28/10
to Django Brasil
Bom, verifiquei, e o mysql é 64 bits, mas o python não consegui ver se
é 64 ou 32 bits só achei uma opção no site python.org e lá não
especifica se é 34 ou 64
Tentei todos o procedimentos sugerido e nada, adicionei o path como o
osvaldo santana falou, segui os passos descrito no
http://www.google.com/url?sa=D&q=http://www.mangoorange.com/2008/08/01/installing-python-mysqldb-122-on-mac-os-x/&usg=AFQjCNE-RC7LBmXYXD8EBTF-ZciquFw7Yg
Depois tentei os precedimentos descritos no
http://vianaweb.com.br/2010/02/mysql-python-snow-leopard-2/
e o erro Permanece.. Alguém tem mais alguma sugestão pra me ajudar?
:D
Obrigado a todos que estão ajudando..
abraços.
segue o erro abaixo.

>>> import MySQLdb
/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-
packages/MySQL_python-1.2.3-py2.6-macosx-10.3-x86_64.egg/_mysql.py:3:
UserWarning: Module _mysql was already imported from /Library/
Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/
MySQL_python-1.2.3-py2.6-macosx-10.3-x86_64.egg/_mysql.pyc, but /Users/
diegomaranhao/Downloads/MySQL-python-1.2.3 is being added to sys.path
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "MySQLdb/__init__.py", line 19, in <module>
import _mysql
File "build/bdist.macosx-10.3-x86_64/egg/_mysql.py", line 7, in
<module>
File "build/bdist.macosx-10.3-x86_64/egg/_mysql.py", line 6, in
__bootstrap__
ImportError: dlopen(/Users/diegomaranhao/.python-eggs/
MySQL_python-1.2.3-py2.6-macosx-10.3-x86_64.egg-tmp/_mysql.so, 2): no
suitable image found. Did find:
/Users/diegomaranhao/.python-eggs/MySQL_python-1.2.3-py2.6-
macosx-10.3-x86_64.egg-tmp/_mysql.so: mach-o, but wrong architecture
>>>







On 27 jun, 13:49, Evandro Viana <evan...@vianaweb.com.br> wrote:
> http://vianaweb.com.br/2010/02/mysql-python-snow-leopard-2/
>
> Depois de instalar o mysql
>
> 2010/6/27 Osvaldo Santana <osant...@triveos.com>
>
>
>
> > (resposta via celular)
>
> > Acrescenta o diretório /usr/local/mysql/bin ao seu PATH antes de rodar
> > o Python setup install.
>
> > O setup.py tenta executar o mysql_config para descobrir onde estão
> > localizados os headerfiles e bibliotecas client do MySQL.
>
> > Valeu,
> > Osvaldo
>

Alexandre

unread,
Jun 28, 2010, 9:00:10 AM6/28/10
to Django Brasil
Antes de tudo, vamos esclarecer alguns poréns que fazem com que este
erro aconteça.

O pacote compilado no python.org para mac vem compilado para 32 bits
(i386 por sinal :( )

Seu MySQL foi instalado a versão x86_64 (64 bits).

Antes de te auxiliar, preciso de algumas informações.

-----------------------------
Abra o terminal e digite.

cd /usr/bin

ls | grep python >> ~/Desktop/ls_python.txt
-----------------------------

Ainda no terminal

cat ~/.bash_profile >> ~/Desktop/bash.txt

Poste o conteudo dos dois txt salvos no seu desktop...

Ja passei por este problema e resolvi, só não lembro onde tinha que
mudar, por isto preciso destas informações.

Hoje não tenho mais este problema, ja que eu compilo a minha versão, o
que não causa trauma :)

Diego Maranhão

unread,
Jun 28, 2010, 11:44:17 AM6/28/10
to django...@googlegroups.com
Segue abaixo o resultado:
ls_python.txt

python
python-config
python2.5
python2.5-config
python2.6
python2.6-config
pythonw
pythonw2.5
pythonw2.6

bash.txt


# Setting PATH for MacPython 2.6
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.6/bin:${PATH}"
export PATH


Obrigado pela ajuda.

2010/6/28 Alexandre <al3xd...@gmail.com>

--

Evandro Viana

unread,
Jun 28, 2010, 1:15:44 PM6/28/10
to django...@googlegroups.com
Pelo que deu pra perceber você está usando o macpython. 

which python 
e tenta importar o setuptools

e depois /usr/bin/python 2.6.1
e tenta import o setuptools 

o 2.6.5 esta estranho quando importa modulos novos aqui. Eu usei o 2.6.1 e deu certo , agora quando eu faço os passos no 2.6.5 ele da erro ao dar build no pacote ele não consegue importar o setuptools no 2.6.5 mesmo com ele instalado.



2010/6/28 Diego Maranhão <dmar...@gmail.com>



--
Evandro Viana
vianaweb.com.br

Alexandre

unread,
Jun 28, 2010, 2:06:01 PM6/28/10
to Django Brasil
Comente este linha:

#PATH="/Library/Frameworks/Python.framework/Versions/2.6/bin:${PATH}"
#export PATH

O comando "which" (sem aspas) no terminal server para procurar pelo
executavel do programa.

Ex: which python
Retorno: /usr/bin/python

Vc comentando as linhas do .bash_profile que eu citei, voltara para a
versão atual do sistema, que é a 2.6.1.

Dai vc vai ficar se perguntando, pq com ela funciona e com a atual não
funciona.

Porque ela foi compilada para suportar tanto 32 bits como 64 bits.

Como verificar isto.

Terminal:

file $(which python)

ou

file /usr/bin/python

Os dois fazem a mesma coisa, a diferença é que no primeiro vc não
precisa saber o caminho para que ele funcione.

Digite "python" no terminal, vc verá que a versão será a 2.6.1

Se vc quiser fazer o update, terá que pegar o fonte e compilar para
suportar tanto 32 bits como 64 bits....

Mais tarde voltarei para explicar como fazer o procedimento, e também
instalar o python 3.1.2 (sei que ele não funciona com o Django ainda,
mas se quiser brincar com a versão nova do python, estara disponivel
para vc :) )

Mac e Linux, vem do Unix, portanto são perfeitos e customizaveis :P

vlw

Diego Maranhão

unread,
Jun 28, 2010, 2:19:17 PM6/28/10
to django...@googlegroups.com
Legal, logo depois do jogo do Brasil vou testar esses procedimentos..
Tem alguma forma de eu ter várias versões do pytho no meu sistema pra testes?
e com algum comando setar qual quero usar em determinado momento?
Abraço e obrigado.

2010/6/28 Alexandre <al3xd...@gmail.com>

--

Diego Maranhão

unread,
Jun 28, 2010, 4:30:51 PM6/28/10
to django...@googlegroups.com
É isso ae mesmo Alexandre, agora funcionou 100%, pelo visto o problema é mesmo a versão pré compilada pra 32 bits do site do python.org.
Voltei pra versão 2.6.1 do python e reinstalei o MySQLdb e ficou tudo beleza a princípio.

MacBook-Pro-de-Diego-Maranhao:~ diegomaranhao$ python
Python 2.6.1 (r261:67515, Feb 11 2010, 00:51:29)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin

Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>>

Voltando a questão passada, tem algum programa que gerencie várias versões distintas do python instalada na maquina?

Obrigado a todos.
Um abraço.

2010/6/28 Diego Maranhão <dmar...@gmail.com>

Lucas De Biaggi Januário

unread,
Jun 29, 2010, 1:08:49 AM6/29/10
to django...@googlegroups.com
É isso ae mesmo Alexandre, agora funcionou 100%, pelo visto o problema é mesmo a versão pré compilada pra 32 bits do site do python.org.
Voltei pra versão 2.6.1 do python e reinstalei o MySQLdb e ficou tudo beleza a princípio.

MacBook-Pro-de-Diego-Maranhao:~ diegomaranhao$ python
Python 2.6.1 (r261:67515, Feb 11 2010, 00:51:29)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>>

Voltando a questão passada, tem algum programa que gerencie várias versões distintas do python instalada na maquina?

Obrigado a todos.
Um abraço.


tem sim é select python procura lha para compilar ele... é meio cabeça dura, não valeu mto a pena preferi ficar com o macpython que funciona mto bem obrigado , embora não tenha uma maneira decente de por pygtk :D


TRANSFORME SUAS FOTOS EM EMOTICONS PARA O MESSENGER. CLIQUE AQUI E VEJA COMO.

Alexandre

unread,
Jun 29, 2010, 8:37:15 AM6/29/10
to Django Brasil
Que bom que deu certo. Para esclarecer alguns pontos.

MacPort é bom, sim, mas vc tem que saber como usar ele, tem vários
pacotes do python, dai tem que ver como pesquisar nele, para ver qual
versão instalar, pq se usar o comando padrão, ele instala o que é
comum em todas as arquiteturas, que é o 32 bits. Por isto que no
python.org existe somente o 32 bits :(

Para instalar a versão compativel tanto com 32 bits como para 64 bits,
tem que ter o xcode e o pacote de desenvolvimento instalado por ele,
pegar o source da versão do python e compilar. Instale sempre como
framework, pq assim ele não se torna padrão do sistema, dai vc pode
fazer testes antes de torna-lo padrão.

Não cheguei a instalar a versão 2.6.5 via source, então não posso
comentar sobre se vai dar algum problema, até pq meu objetivo é
aprender o Django, depois aprofundar no python para isto, sou ainda
iniciante no django.

Para quem quiser instalar a versão 3 sem trauma, e suportando 32 bits
e 64 bits, segue os passos:

Vai no site é baixe o código fonte, hoje ja deve ter versão mais nova,
mas o procedimento é o mesmo:

Crie uma pasta dentro do seu usuário e coloque o código fonte e faça o
procedimento la, ja que dai vc não vai precisar usar o super usuário
para fazer os procedimentos que não tem necessidade de fazer.

tar xzvf Python-3.1.2.tgz
cd Python-3.1.2
./configure --enable-framework --enable-universalsdk=/Developer/SDKs/
MacOSX10.6.sdk/ --with-universal-archs=intel
make
sudo make frameworkinstall

Comentando o que esta sendo feito. extraindo, entrando dentro da
pasta, configurando, e setando como framework, informando qual o sdk
de desenvolvimento, configurando a arquitetura para intel (i386 e
x86_64), posteriormente preparando para instalar (make), e ai sim,
precisa de permissão de super usuário, dai "sudo make
frameworkinstall" para instalar como framework, dai ele instala na
pasta /Applications o IDLE e o Python Launcher como a instalação
tradicionar, e se vc usar o terminar e chamar pelo comando "python3"
vc estara dentro do python 3 :)

Quer tornar o python 3 como padrão (não funciona o django), se você é
desenvolvedor python e precisa disto, vou citar algumas formas....

Terminal:

OP 1:

cd /usr/bin/
sudo mv python python.bkp // aqui ele move renomeando o arquivo para
python.bkp (caso queira voltar é só fazer o inverso :)
sudo ln -ls /usr/local/bin/python3 /usr/bin/python // aqui ele cria um
link simbólico da versão do python3 para o python, tornando o seu
python a versão 3.x :)

OP2:

mate ~/.bash_profile // eu uso o textmate, o comando no terminal para
o textmate é mate

Crie uma alias para sobrescrever:

alias python='/usr/local/bin/python3'

Salve e reinicie o terminal e digite python :)

OP3:

PATH="${PATH}:/Library/Frameworks/Python.framework/Versions/3.1/bin"

ou

PATH="/Library/Frameworks/Python.framework/Versions/3.1/bin:${PATH}"

O que melhor te agradar :P

export PATH

Salve o bash_profile e estara criado o path para a versão 3.

Em todas as opções o processo é reversivel, na OP 2 e 3 basta
comentar, ja na op 1:

Terminal:

cd /usr/bin

sudo rm python // removendo o link simbólico que faz referencia a
versão 3
sudo mv python.bkp python // restaurando a versão antiga para seu
devido lugar.....

Ha vantagem de não se usar o Macport ou easy_install é que vc sabe
realmente o que esta fazendo e onde esta colocando, porém é mais
avançado o processo. Ha ainda outra opção que é o ambiente isolado de
desenvolvimento chamado virtualenv, não tenho informações do
procedimento e como usa-lo, ja que nunca utilizei, mas é uma
alternativa.

DICA: para utilizar a opção de internacionalização, vc terá que
instalar o gettext

Antes verifique se vc tem ele instalado:

which gettext

Senão tiver retorno, é amigo, vc não tem.

OP 1:

http://gettext.darwinports.com/ // lute bastante, reinvente a
roda......rs

OP 2:

http://www.ellert.se/twain-sane/ // a roda ja existe, basta pegar e
usa-la :)

Espero ter ajudado quem estava com duvidas .... Pq precisarei de muita
ajuda daqui uns tempos no django......rs

vlw

Reply all
Reply to author
Forward
0 new messages