J'essaie de pip install
le package MySQL-python
, mais j'obtiens un ImportError
.
Jans-MacBook-Pro:~ jan$ /Library/Frameworks/Python.framework/Versions/3.3/bin/pip-3.3 install MySQL-python
Downloading/unpacking MySQL-python
Running setup.py Egg_info for package MySQL-python
Traceback (most recent call last):
File "<string>", line 16, in <module>
File "/var/folders/lf/myf7bjr57_jg7_5c4014bh640000gn/T/pip-build/MySQL-python/setup.py", line 14, in <module>
from setup_posix import get_config
File "./setup_posix.py", line 2, in <module>
from ConfigParser import SafeConfigParser
ImportError: No module named 'ConfigParser'
Complete output from command python setup.py Egg_info:
Traceback (most recent call last):
File "<string>", line 16, in <module>
File "/var/folders/lf/myf7bjr57_jg7_5c4014bh640000gn/T/pip-build/MySQL-python/setup.py", line 14, in <module>
from setup_posix import get_config
File "./setup_posix.py", line 2, in <module>
from ConfigParser import SafeConfigParser
ImportError: No module named 'ConfigParser'
----------------------------------------
Command python setup.py Egg_info failed with error code 1 in /var/folders/lf/myf7bjr57_jg7_5c4014bh640000gn/T/pip-build/MySQL-python
Storing complete log in /Users/jan/.pip/pip.log
Jans-MacBook-Pro:~ jan$
Des idées?
Dans Python 3, ConfigParser
a été renommé en configparser
pour la conformité PEP 8. Il semble que le paquet que vous installez ne supporte pas Python 3.
Vous pouvez à la place utiliser le paquetage mysqlclient
comme solution de remplacement pour MySQL-python. C'est un fork de MySQL-python
avec un support supplémentaire pour Python 3.
J'ai eu de la chance avec tout simplement
pip install mysqlclient
dans mon python3.4 virtualenv après
Sudo apt-get install python3-dev libmysqlclient-dev
ce qui est évidemment spécifique à ubuntu/debian, mais je voulais juste partager mon succès :)
Voici un code qui devrait fonctionner à la fois Python 2.x et 3.x
Évidemment, vous aurez besoin du module six
, mais il est presque impossible d'écrire des modules qui fonctionnent dans les deux versions sans six.
try:
import configparser
except:
from six.moves import configparser
MySQL-python n'est pas supporté sur python3, vous pouvez utiliser mysqlclient
Si vous êtes sur Fedora/centos/Red Hat
installer le paquet suivant
yum install python3-devel
pip install mysqlclient
pip install configparser
Sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py
Essayez ensuite d’installer à nouveau MYSQL-python. Cela a fonctionné pour moi
Si vous utilisez CentOS, vous devez utiliser
yum install python34-devel.x86_64
yum groupinstall -y 'development tools'
pip3 install mysql-connector
pip install mysqlclient
La compatibilité de Python 2/3 pour configparser
peut être résolue simplement par la bibliothèque six
from six.moves import configparser
J'avais le même problème. Il s'est avéré qu'il me fallait installer python3 devel sur mon centos. Tout d'abord, vous devez rechercher le paquet compatible avec votre système.
yum search python3 | grep devel
Ensuite, installez le paquet en tant que:
yum install -y python3-devel.x86_64
Ensuite, installez mysqlclient à partir de pip
pip install mysqlclient
Je suis plus loin avec Valeres répondre:
pip install configparser Sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py Essayez ensuite d’installer à nouveau MYSQL-python. Cela a fonctionné pour moi
Je suggérerais de lier le fichier au lieu de le copier. C'est sauvegarder pour mettre à jour. J'ai lié le fichier au répertoire /usr/lib/python3/
.
Je lance kali linux- Rolling et j’ai rencontré ce problème lorsque j’ai essayé d’exécuter cupp.py dans le terminal, après la mise à jour vers python 3.6.0. Après quelques recherches et essais, j’ai trouvé que changer ConfigParser
en configparser
fonctionnait pour moi, mais j’ai rencontré un autre problème.
config = configparser.configparser() AttributeError: module 'configparser' has no attribute 'configparser'
Après un peu plus de recherches, j'ai réalisé que pour python 3 ConfigParser
est remplacé par configparser
, mais notez qu'il possède un attribut ConfigParser()
.
brew install mysql
pip3 install mysql
donne toujours "l'erreur configparser" et je ne sais pas pourquoi cela n'a pas encore été corrigé.
que diriez-vous de vérifier la version de Python que vous utilisez en premier.
import six
if six.PY2:
import ConfigParser as configparser
else:
import configparser
Faites pip3 install PyMySQL
puis pip3 install mysqlclient
. A travaillé pour moi
Essayez this solution qui a bien fonctionné pour moi.
Il s’agit essentiellement de réinstaller/mettre à niveau la dernière version de mysql à partir de brew , puis en installant mysqlclient
ou MySQL-Python
à partir de global pip3
au lieu de virtualenv pip3
.
Accédez ensuite à virtualenv
et installez correctement mysqlclient
ou MySQL-Python
.