我试图pip安装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$ 

什么好主意吗?


在Python 3中,ConfigParser已重命名为ConfigParser以符合PEP 8。看起来您正在安装的包不支持Python 3。


您可以使用mysqlclient包代替MySQL-python。它是MySQL-python的一个分支,增加了对Python 3的支持。

我的运气很简单

pip install mysqlclient

在我的python3.4 virtualenv之后

sudo apt-get install python3-dev libmysqlclient-dev

这显然是针对ubuntu/debian的,但我只是想分享我的成功:)


下面的代码应该在Python 2中都能工作。X和3.x

显然,您将需要six模块,但如果没有six模块,几乎不可能编写在两个版本中都可以工作的模块。

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

请看看/usr/bin/python指向什么

如果指向python3或更高,则更改为python2.7

这应该能解决问题。

我得到的所有python包的安装错误。Abe Karplus的解决方案和讨论给了我关于问题所在的提示。 然后我想起我手动将/usr/bin/python从python2.7更改为/usr/bin/python3.5,这实际上是导致问题的原因。有一次我又变回原来的样子。问题解决了。


这对我很有效

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

如果您正在使用CentOS,那么您需要使用

Yum安装python34-dev .x86_64 Yum groupinstall -y '开发工具' 安装mysql-connector PIP安装mysqlclient


在python3上不支持MySQL-python,你可以使用mysqlclient

如果您使用的是fedora/centos/Red Hat,请安装以下软件包

Yum安装python3-devel PIP安装mysqlclient


先检查一下你使用的Python版本如何?

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

我运行kali linux- Rolling,当我尝试在终端中运行cup .py时,在更新到python 3.6.0后,我遇到了这个问题。经过一些研究和试验,我发现将ConfigParser更改为ConfigParser对我有用,但随后我遇到了另一个问题。

自信。 吸引:模块“说服器”没有吸引“说服器”

经过更多的研究,我意识到对于python 3, ConfigParser被更改为ConfigParser,但注意它有一个属性ConfigParser()。


configparser的Python 2/3兼容性可以简单地通过六个库来解决

from six.moves import configparser

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

然后尝试重新安装MYSQL-python。 这对我很有用


试试这个对我很有效的方法。

基本上就是从brew重新安装/升级到最新版本的mysql,然后从global pip3而不是virtualenv pip3安装mysqlclient或mysql - python。

然后访问virtualenv并成功安装mysqlclient或MySQL-Python。


我进一步回答了瓦莱勒的问题:

PIP安装configparser sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/configparser.py 然后尝试重新安装MYSQL-python。这对我很有用

我建议链接这个文件,而不是复制它。这是保存更新。我将文件链接到/usr/lib/python3/目录。


我也有同样的问题。结果,我需要在我的centos上安装python3 devel。首先,您需要搜索与您的系统兼容的软件包。

yum search python3 | grep devel

然后,按照如下方式安装包:

yum install -y python3-devel.x86_64

然后,从pip安装mysqlclient

pip install mysqlclient

先pip3安装PyMySQL,再pip3安装mysqlclient。 为我工作


我在Mac OS 10, Python 3.7.6和Django 2.2.7上得到了同样的错误。我想利用这个机会分享在尝试了许多解决方案后对我有效的方法。

步骤

Installed Connector/Python 8.0.20 for Mac OS from link Copy current dependencies into requirements.txt file, deactivated the current virtual env, and deleted it using; create the file if not already created with; touch requirements.txt copy dependency to file; python -m pip3 freeze > requirements.txt deactivate and delete current virtual env; deactivate && rm -rf <virtual-env-name> Created another virtual env and activated it using; python -m venv <virtual-env-name> && source <virtual-env-name>/bin/activate Install previous dependencies using; python -m pip3 install -r requirements.txt


我仍然有这个问题,所以我去/usr/lib/python3.8,输入sudoer:

cp configparser.py ConfigParser.py

你的python版本可能不是3.8。


对我来说,下面的命令是有效的:

sudo python3 -m pip install mysql-connector

额外的信息:

Python 2 x

import ConfigParser

Python 3 x

import configparser

下面是@MaciejNg,我试着复制了一份,但没有成功:

sudo cp ./env/lib/python3.8/site-packages/configparser.py ./env/lib/python3.8/site-packages/ConfigParser.py

因为configparser.py和configparser.py是相同的,所以我重命名了这个文件:

sudo mv ./env/lib/python3.8/site-packages/configparser.py ./env/lib/python3.8/site-packages/ConfigParser.py

基于你的操作系统使用python3 如果你不知道configparser.py或configparser.py在哪

安装configparser 查找/ -name "configparser.py" CD /usr/local/lib/python3.6/site-packages(基于您的环境) cp configparser.py configparser.py

解决问题