2013-05-08 5 views
12

Je viens d'apprendre comment utiliser virtualenv et j'ai installé Django 1.4.5. Je suppose que le virtualenv a créé une table rase pour moi de travailler avec Django 1.4.5 installé, j'ai copié tous mes fichiers précédents dans l'environnement virtualenv.Installer MySQL-python pour Django

J'ai essayé d'exécuter le serveur mais j'obtiens une erreur en disant "no module named MySQLdb". Je pense que cela signifie que j'ai oublié d'installer MySQL-python. J'ai essayé de l'installer via

pip install MySQL-python 

Mais je reçois cette erreur

Downloading/unpacking MySQL-python 
    Running setup.py egg_info for package MySQL-python 
    The required version of distribute (>=0.6.28) is not available, 
    and can't be installed while this script is running. Please 
    install a more recent version first, using 
    'easy_install -U distribute'. 

    (Currently using distribute 0.6.24  (/home/bradford/Development/Django/django_1.4.5/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg)) 
    Complete output from command python setup.py egg_info: 
    The required version of distribute (>=0.6.28) is not available, 

    and can't be installed while this script is running. Please 

    install a more recent version first, using 

    'easy_install -U distribute'. 



    (Currently using distribute 0.6.24 (/home/bradford/Development/Django/django_1.4.5/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg)) 

    ---------------------------------------- 
    Command python setup.py egg_info failed with error code 2 in /home/bradford/Development/Django/django_1.4.5/build/MySQL-python 

Pas tout à fait sûr de savoir comment s'y prendre pour régler ce problème =/toute aide a beaucoup apprécié!

Répondre

22

J'ai récemment eu exactement ce problème (mais pas par rapport à Django). Dans mon cas, je développe sur Ubuntu 12.04 en utilisant les versions par défaut pip et distribuer, qui sont fondamentalement un peu périmé pour MySQL-python. Puisque vous travaillez dans un virtualenv isolé, vous pouvez suivre en toute sécurité l'instruction suggérée sans affecter votre installation Python.

Ainsi, vous pouvez ...

workon your_virtualenv #activate your virtualenv, you do use virtualenvwrapper, right? 
easy_install -U distribute #update distribute on your virtualenv 
pip install MySQL-python #install your package 

Si pour une mise à niveau de la raison diffusez est pas une option, vous pouvez essayer d'installer une version plus ancienne de MySQL-python comme suit (vous faudrait vérifier cette version est compatible avec votre version de Django):

pip install MySQL-python==x.y.z #where x.y.z is the version you want 
+0

IMPRESSIONNANT! merci beaucoup! le easy_install -U distribuer a fait l'affaire! Merci!!! – Liondancer

+0

pas de problèmes, la première fois que j'ai été capable de répondre à une question SO du type que je demande souvent :) – d3vid

+0

Je n'ai pas encore répondu à = = – Liondancer

14

Passé une heure à chercher dans stackoverflow. Evidemment trouvé réponse in the other question. C'est ce qui m'a sauvé:

sudo apt-get install libmysqlclient-dev 

mysql_config est livré avec le paquet.

2

je devais faire ceci:

pip install mysql-python 

à l'intérieur du virtualenv

8

Quand vous faites dans un virtualenv:

pip install MySQL-python 

J'obtenu

EnvironmentError: mysql_config not found 

Pour installer mysql_config, comme Artem Fedo dit SOV, installez d'abord

sudo apt-get install libmysqlclient-dev 

alors tout fonctionne très bien dans virtualenv

+1

Ceci est la meilleure réponse pour moi, je courais dans l'erreur 'mysql_config' avec la réponse acceptée –

2

Les commandes sont exécutées toujours ubuntu:

easy_install -U distribute 

plus tard

sudo apt-get install libmysqlclient-dev 

et enfin

pip install MySQL-python 
2

Les solutions proposées n'a pas fonctionné pour moi, parce que j'ai toujours eu des erreurs de compilation après l'exécution

`$ sudo apt-get install libmysqlclient-dev` 

si je devais courir

apt-get install python-dev 

Ensuite, tout a bien fonctionné pour moi avec

apt-get install python-dev 
2

Le pilote MySQL pour Python (mysql-python) a besoin de libmysqlclient-dev. Vous pouvez l'obtenir avec:

sudo apt-get update 
sudo apt-get install libmysqlclient-dev 

Si python-dev n'est pas installé, vous pouvez avoir à l'installer aussi:

sudo apt-get install python-dev 

Vous pouvez maintenant installer le pilote MySQL:

pip install mysql-python 

Voici une documentation plus détaillée pour MySQL dans Django:

http://codex.themedelta.com/how-to-install-django-with-mysql-in-a-virtualenv-on-linux/

+0

le lien ne fonctionne plus – cwhisperer

Questions connexes