8
votes

Django - MySQLDB: Symbole non trouvé: _MYSQL_Affec.Rows

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


0 commentaires

6 Réponses :


0
votes

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.

Je ne sais pas pourquoi, mais je pense que votre collègue pourrait être intéressé par cette question:

Configuration de Django Pour utiliser Remote MySQL Server?


0 commentaires

6
votes

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:

  1. Installez mySQL pour votre système, Le programme d'installation DMG devrait suffire

  2. L'emplacement par défaut de MySQL sera quelque part autour de: /usr/local/mysql-5.0.45-osx10.4-i686 . De / usr / local / mysql / lib , créez un lien logiciel:

    ln -s ../../mysql-5.0.45-osx10.4-i686/lib mysql

  3. Téléchargez le MySQLDB Source et décompressez-le

  4. Modifier le fichier SITE.CFG Dans votre répertoire MySQLDB non décompressé, commencez le Registry_Key et définir mysql_config à:

    mysql_config = /usr/local/mysql-5.0.45-osx10.4-i686/bin/mysql_configleightle/code>

  5. Continuez avec les packages Python réguliers Construire à partir de l'annuaire MySQLDB:

    sudo python setup.py installer

  6. Si tout va bien au-dessus, testez MySQLDB dans un nouveau terminal:

    python -c "importer mysqldb"

    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.


2 commentaires

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 sur les drapeaux compilateur et lieur. C'est comme ça que j'ai besoin de modifier le setup_posix.py à partir du package mysqldb-python: dans la section où le ext_options est construit j'ai changé extra_compile_args = extra_compile_args à extra_compile_args = extra_compile_args + ['-arch', "x86_64"] et extra_link_args = extra_link_args to extra_link_args = extra_link_args + ['-arch', " x86_64 "]



0
votes

J'ai eu des problèmes avec la solution de Thierry sur Python 32 bits (2.6.5) sur OS X 10.6.

Mise à niveau vers la version Python 2.7 64 bits Correction du problème pour moi.


1 commentaires

J'utilise déjà 2.7, obtenez toujours l'erreur.



1
votes

C'était compliqué et dur mais cela a fonctionné sur macosx lion fort>.

Vous utiliserez: p> xxx pré>

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>

xcodebuild -version x (code> p>

si vous avez rencontré cette erreur erreur forte> p>

/ usr / Erreur de bin / xcodebuild: Aucun répertoire de développement trouvé sur / développeur code> p>

Essayez d'exécuter p>

/ USR / bin / xcode-sélectionner code>
Cela mettra à jour le chemin du répertoire des développeurs p>

Ensuite, vous devez passer manuellement à la nouvelle Xcode installer dir dans / Applications:. p>

sudo port install py27-mysql

pip install mysql-python

python -c "import MySQLdb"


0 commentaires

-1
votes
sudo apt-get install python-mysqldb
make sure it should installed properlyor you can use another alternative like easy_install 

0 commentaires

0
votes

Essayez de courir:

sudo yum install mysql-devel


0 commentaires