Nenhum módulo chamado MySQLdb ao tentar carregar o painel do OpenStack

1

Estou tentando instalar o OpenStack Dashboard seguindo este guia do git: link

Mas quando executo este comando para sincronizar o banco de dados:

$ tools/with_venv.sh openstack-dashboard/manage.py syncdb

Ele retorna isso:

File "/home/user1/horizon/.venv/local/lib/python2.7/sitepackages/django/db/backends/mysql>    /base.py", line 14, in <module>    
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

Eu instalei o pacote " python-mysqldb " várias vezes, mas ele ainda gerou esse erro. Quando eu corro:

> > > importe o MySQLdb

no interpretador python, tudo bem!

E eu tentei instalar através do easy_install, mas o MySQL-python está instalado:

$ sudo easy_install MySQL-python

Searching for MySQL-python

Best match: MySQL-python 1.2.3 MySQL-python 1.2.3 is already the active version in easy-install.pth

Using /usr/lib/pymodules/python2.7

Processing dependencies for MySQL-python

Finished processing dependencies for MySQL-python

Aqui está o conteúdo das ferramentas / with_venv.sh

#!/bin/bash
TOOLS='dirname $0'
VENV=$TOOLS/../.venv
source $VENV/bin/activate && $@

Quando eu executo: tools / with_venv.sh ele não retorna nada.

O que há de errado no meu caso?

    
por neo0 27.02.2012 / 10:43

2 respostas

0

Também fiz esta pergunta no launchpad. Graças a Deus eles me ajudam a resolver esse problema. link

Ao executar este comando para instalar o MySQL-python

$ tools/with_venv.sh pip install MySQL-python

@ Ken: Obrigado. Você está certo. Mas eu não entendo qual é a diferença entre o comando easy_install e pip ! Eu vou verificar isso depois.

    
por neo0 28.02.2012 / 11:06
3

Com o virtualenv, você tem seu próprio ambiente especificamente para esse aplicativo. Se você usar --no-site-packages , não usará módulos do sistema instalados além da biblioteca padrão.

A solução é ativar o ambiente virtual e instalá-los lá. Tente algo assim:

cd (project directory)
source bin/activate
easy_install MySQL-python

Ao fazer isso, você instalará o MySQLdb dentro do próprio ambiente virtual do projeto e será separado da instalação do sistema. A vantagem do virtualenv é que ele permite que você mantenha várias versões do software contidas exatamente onde você precisa delas.

    
por Ken Kinder 28.02.2012 / 03:18