web-dev-qa-db-fra.com

Python 3 ImportError: Aucun module nommé 'ConfigParser'

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?

275
if __name__ is None

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.

295
Abe Karplus

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 :)

373
Eldamir

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
12
sorin

MySQL-python n'est pas supporté sur python3, vous pouvez utiliser mysqlclient

Si vous êtes sur Fedora/centos/Red Hat installer le paquet suivant

  1. yum install python3-devel
  2. pip install mysqlclient
10
Kaushal
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

9
Valere

Si vous utilisez CentOS, vous devez utiliser

  1. yum install python34-devel.x86_64
  2. yum groupinstall -y 'development tools'
  3. pip3 install mysql-connector
  4. pip install mysqlclient
6
Gaurav.

La compatibilité de Python 2/3 pour configparser peut être résolue simplement par la bibliothèque six

from six.moves import configparser
5
Akif

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
4

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/.

3

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().

1
Oliver Wahome
brew install mysql

pip3 install mysql donne toujours "l'erreur configparser" et je ne sais pas pourquoi cela n'a pas encore été corrigé.

1
Troy Sincomb

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
1
Gideon Kimutai

Faites pip3 install PyMySQL puis pip3 install mysqlclient. A travaillé pour moi

1
Roy Ash

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.

1
Aishwary Dhare