Un collègue a obtenu ce message d'erreur lors de la tentative d'utilisation de MySQLDB à partir de Django:
[...]
ImproperlyConfigured("Error loading MySQLdb module: %s" % e) django.core.exceptions.ImproperlyConfigured:
Error loading MySQLdb module: dlopen(/Users/roy/.python-eggs/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg-tmp/_mysql.so, 2):
Symbol not found: _mysql_affected_rows
Referenced from: /Users/roy/.python-eggs/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg-tmp/_mysql.so Expected in: dynamic lookup
6 Réponses :
Oui, l'œuf MySQLDB a été compilé contre une version différente de libmysqlclient que la version présente dans le système. Vous devez soit obtenir un oeuf correct (désinstaller le précédent) ou construire MySQLDB à partir de zéro pour la compiler contre la bibliothèque présente dans votre système. P>
Je ne sais pas pourquoi, mais je pense que votre collègue pourrait être intéressé par cette question: p>
Configuration de Django Pour utiliser Remote MySQL Server? P >
Il peut être préférable que vous installiez MySQL et ses liaisons python à partir de zéro, j'utilise les étapes suivantes chaque fois que j'ai besoin de MySQLDB sur OS X 10.4 ou 10.5: P>
Installez mySQL pour votre système, Le programme d'installation DMG devrait suffire P> LI>
L'emplacement par défaut de MySQL sera quelque part autour de: Téléchargez le MySQLDB Source et décompressez-le P> li>
Modifier le fichier Continuez avec les packages Python réguliers Construire à partir de l'annuaire MySQLDB: P>
Si tout va bien au-dessus, testez MySQLDB dans un nouveau terminal: P>
Ce qui précède ne devrait rien retourner s'il réussisse. L'exemple ci-dessus montre le système d'exploitation 10.4 et MySQL 5.0, les substituez à la version de votre option appropriée. P> /usr/local/mysql-5.0.45-osx10.4-i686 code>. De / usr / local / mysql / lib code>, créez un lien logiciel: p>
ln -s ../../mysql-5.0.45-osx10.4-i686/lib mysql code> p> li>
SITE.CFG CODE> Dans votre répertoire MySQLDB non décompressé, commencez le Registry_Key Code> et définir mysql_config code> à: p>
mysql_config = /usr/local/mysql-5.0.45-osx10.4-i686/bin/mysql_configleightle/code> p> li>
sudo python setup.py installer code> p> li>
python -c "importer mysqldb" code> p> li>
ol>
Le MySQL 10.6 DMG n'est pas encore sorti, une fois qu'il est libéré, donnez-lui un autre tourbillon.
Merci pour cette solution. Il a presque travaillé sur mon système (OSX 10.7). Cependant, je dois ajouter le drapeau -arch x86_64 B> sur les drapeaux compilateur et lieur. C'est comme ça que j'ai besoin de modifier le setup_posix.py b> à partir du package mysqldb-python: dans la section où le ext_options code> est construit j'ai changé extra_compile_args = extra_compile_args code> à extra_compile_args = extra_compile_args + ['-arch', "x86_64"] code> et extra_link_args = extra_link_args code> to extra_link_args = extra_link_args + ['-arch', " x86_64 "] code>
J'ai eu des problèmes avec la solution de Thierry sur Python 32 bits (2.6.5) sur OS X 10.6. P>
Mise à niveau vers la version Python 2.7 64 bits Correction du problème pour moi. P>
J'utilise déjà 2.7, obtenez toujours l'erreur.
C'était compliqué et dur mais cela a fonctionné sur macosx lion fort>. Vous utiliserez: p> Assurez-vous que vous avez Xcode (4.x) installé et votre Mac est configuré pour rechercher les exécutables car il sera utilisé par Macports fort> pendant le processus d'installation de MySQL-Python. P> Assurez-vous que Les outils de ligne de commande Xcode sont installés P> Démarrer Xcode application >> Préférences >> Télécharger >> onglet Composants >> Outils de ligne de commande >> Cliquez sur Installer P> Exécuter les commandes suivantes à partir du terminal. p> si vous avez rencontré cette erreur Essayez d'exécuter p> Ensuite, vous devez passer manuellement à la nouvelle Xcode installer dir dans / Applications:. p> xcodebuild -version x (code> p> / usr / Erreur de bin / xcodebuild: Aucun répertoire de développement trouvé sur / développeur code> p> / USR / bin / xcode-sélectionner code>
Cela mettra à jour le chemin du répertoire des développeurs p> sudo port install py27-mysql
pip install mysql-python
python -c "import MySQLdb"
sudo apt-get install python-mysqldb make sure it should installed properlyor you can use another alternative like easy_install
Essayez de courir:
sudo yum install mysql-devel