Python 3 ImportError: 'ConfigParser'という名前のモジュールはありません


324

パッケージを試そうとしpip installていMySQL-pythonますが、が表示され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$ 

何か案は?


何てecho $PATH言うの?
inspectorG4dget

20
2017年にpython3で同じエラーが発生するのはなぜですか?
Claudiu Creanga

回答:


360

Python 3では、ConfigParser名前がconfigparserPEP 8に準拠するように変更されました。インストールしているパッケージはPython 3をサポートしていないようです。


77
正しい。MySQLの-pythonのは、現在のPython 3をサポートしていません
マイケルMIOR

3
私の選択肢は何ですか?PyMySQL3-0.5を試しましたが、非常にバグが多く、最初の実行呼び出しでクラッシュします。
__name__がNoneの場合

15
@JanBirsa簡単なGoogle検索でいくつかの可能性が見つかりました。PyMySQLが機能しない場合は、OurSQLMySQL Connector / PythonMySQL-Pythonのポートなどがあります。
Abe Karplus

12
これの移動ターゲットですが、pip3 install mysql-connectorを使用しています。MySQLからpython3をサポートするようになりました。タイピング時のリリースは2.1.3です。
Longmang 2016年

4
試してみましたがsudo python3 -m pip install mysql-connector、今は機能しています。ヒント@Longmangをありがとう
マルコ

407

代わりに、mysqlclientパッケージをMySQL-pythonのドロップイン置換として使用できます。MySQL-pythonPython 3のサポートが追加されたforkです。

単に運が良かった

pip install mysqlclient

私のpython3.4 virtualenvの後

sudo apt-get install python3-dev libmysqlclient-dev

これは明らかにubuntu / debianに固有ですが、私は自分の成功を共有したかっただけです:)


2
CentOSでは、mysqlclientをインストールする前に「yum install python-devel mysql-devel」を実行します。
Joe Cheng

3
これはGPLパッケージであるため、このモジュールを使用する場合は、プログラムもGPLでリリースする必要があることに注意してください。
bogdan.mustiata 2017

のDebianそれはインストールするのに十分であるlibpython3.5-minimalパッケージを(sudo apt-get install libpython3.5-minimal)。
patryk.beza 2017年

2
OSXでは、mysqlclientをインストールする前に「brew install mysql」を実行する必要があります。
ghostishev 2018

私はpip3 install mysqlclientを使用し、それは魅力のように機能しました!ありがとう!
アーンシャイ2018

16

Python 2.xと3.xの両方で機能するコードは次のとおりです

当然、sixモジュールが必要になりますが、6なしで両方のバージョンで機能するモジュールを作成することはほとんど不可能です。

try:
    import configparser
except:
    from six.moves import configparser

5
トライブロックをスキップして使用するのはなぜですかfrom six.moves import configparser
Matthias Kuhn

5
-1。全体のポイントはsix.movesである「一貫したインターフェースを提供する」と改名モジュールに、ラッピング輸入try/ except使用してsix敗北をポイント。だけを使用してくださいfrom six.moves import configparser。ここでは6つは必要ありません。あなたはあなたのブロックで置き換えることができ、from six.moves import configparserを必要とせずに同じ結果を得ることができimport ConfigParser as configparserます。exceptsix
Mark Amery

@MatthiasKuhn私は、sixPython 3.XではなくPython 2.Xの要件のみを作成するつもりだったと思います。
Martin Thoma

@MartinThoma(Mark Ameryが書いたように)これは全体のポイントを打ち負かします。try / exceptチェックが実施されている場合、これ以上使用する理由はなくsix.moves、ネイティブ名はPython 2でも直接使用できます。
Matthias Kuhn

13
pip install configparser
sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py

次に、MYSQL-pythonを再度インストールしてみます。それは私のために働いた


12

MySQLの-pythonのではなく、使用することができ、このののpython3でサポートされていないはmysqlclientを

fedora/centos/Red Hat次のパッケージをインストールしている場合

  1. yum install python3-devel
  2. pip install mysqlclient

1
raise EnvironmentError( "%s not found"%(mysql_config.path、))OSError:mysql_config not found
PirateApp

1
@PirateAppおそらくmysqlがインストールされていません。ここを確認してください。stackoverflow.com
questions / 7475223 /…

sudo yum install python3-devel読み込まれたプラグイン:fastestmirrorキャッシュされたホストファイルからミラーの速度を読み込みます*ベース:mirror.web-ster.com * epel:mirrors.cat.pdx.edu * extras:mirror.web-ster.com * ius:mirrors .kernel.org *更新:mirror.web-ster.com利用可能なパッケージpython3-develはありません。エラー:何もしない
viru

7

CentOSを使用している場合は、

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

6

Python 2/3の互換性はライブラリでconfigparser簡単に解決できますsix

from six.moves import configparser


5

私も同じ問題を抱えていました。結局、私は私のcentosにpython3 develをインストールする必要がありました。まず、システムと互換性のあるパッケージを検索する必要があります。

yum search python3 | grep devel

次に、パッケージを次のようにインストールします。

yum install -y python3-devel.x86_64

次に、mysqlclientをpipからインストールします。

pip install mysqlclient

3

私はバレレスの​​答えでさらに進んだ:

pip install configparser sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py次に、MYSQL-pythonを再度インストールしてみます。それは私のために働いた

ファイルをコピーする代わりにリンクすることをお勧めします。更新して保存します。ファイルを/usr/lib/python3/ディレクトリにリンクしました。


2

私にとってうまくいったこの解決策を試してください。

基本的には、brewから最新バージョンのmysqlに再インストール/アップグレードし、の代わりにまたはからインストールすることです。mysqlclientMySQL-Pythonglobal pip3virtualenv pip3

次ににアクセスしてvirtualenvmysqlclientまたはを正常にインストールしMySQL-Pythonます。


1

最初に使用しているPythonのバージョンを確認してみてください。

import six
if six.PY2:
    import ConfigParser as configparser
else:
    import configparser

1
これは非常に簡単ですfrom six.moves import configparser
Akif

1

私はkali linux- Rollingを実行し、python 3.6.0に更新した後、ターミナルでcupp.pyを実行しようとしたときにこの問題に遭遇しました。いくつかの研究と裁判の後、私は自分のために変更ConfigParserすることが configparserうまくいくことに気付きまし たが、それから私は別の問題に遭遇しました。

config = configparser.configparser() AttributeError: module 'configparser' has no attribute 'configparser'

もう少し調査した後、私はpython 3 ConfigParserがに変更されて いることに気付きまし configparserたが、属性があることに注意してください ConfigParser()


1

Mac OS 10、Python 3.7.6、Django 2.2.7でも同じエラーが発生しました。この機会を利用して、多くの解決策を試した後、自分にとってうまくいったことを共有したいと思います。

手順

  1. リンクからMac OS用Connector / Python 8.0.20をインストール

  2. 現在の依存関係をrequirements.txtファイルにコピーし、現在の仮想環境を非アクティブにし、それを使用して削除します。

    まだ作成されていない場合はファイルを作成します。 touch requirements.txt

    依存関係をファイルにコピーします。 python -m pip3 freeze > requirements.txt

    現在の仮想環境を非アクティブ化して削除します。 deactivate && rm -rf <virtual-env-name>

  3. 別の仮想環境を作成し、それを使用してアクティブ化しました。 python -m venv <virtual-env-name> && source <virtual-env-name>/bin/activate

  4. 以下を使用して以前の依存関係をインストールします。 python -m pip3 install -r requirements.txt


-2

何が/usr/bin/python指しているのかを確認してください

python3 or higher 変更することを指している場合python2.7

これで問題が解決するはずです。

すべてのPythonパッケージでインストールエラーが発生しました。阿部カープラスの解決策と議論は、何が問題なのかについてのヒントを与えてくれました。次に、手動でを/usr/bin/pythonからpython2.7に変更したことを思い出しましたが/usr/bin/python3.5、これが実際に問題を引き起こしていました。一度revertedは同じです。解決しました。


4
サポートするためにPython 2に戻すのMySQL-pythonはやり過ぎです。代わりに、ライブラリのPython 3バージョンを使用してください。
Mark Amery

-3

これは私のために働いた

cp /usr/local/lib/python3.5/configparser.py /usr/local/lib/python3.5/ConfigParser.py

1
それをすべきではありません。阿部karplusからの回答を参照してください。ConfigParserはPython3でconfigparserに名前が変更されました。
Bob Yoplait 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.