ChatGPT解决这个技术问题 Extra ChatGPT

Python 3 ImportError:没有名为“ConfigParser”的模块

我正在尝试 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 说什么?
为什么在 2017 年我得到与 python3 相同的错误?
它的2020年仍然如此
2021 年还是一样 :)
2022 年,与 node.js / C / C++ / 其他任何东西相比,任何 python 导入仍然令人难以置信

J
Javad Nikbakht

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

我很幸运

pip install mysqlclient

在我的python3.4 virtualenv之后

sudo apt-get install python3-dev libmysqlclient-dev

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


在 CentOS 上,在安装 mysqlclient 之前运行“yum install python-devel mysql-devel”。
请注意,这是一个 GPL 包,因此如果您使用此模块,您还需要使用 GPL 发布您的程序。
Debian 上安装 libpython3.5-minimal 包 (sudo apt-get install libpython3.5-minimal) 就足够了。
在 OSX 上,您应该在安装 mysqlclient 之前运行“brew install mysql”。
我使用 pip3 install mysqlclient ,它就像一个魅力!谢谢!
M
Mark Amery

在 Python 3 中,为了符合 PEP 8,ConfigParser 已重命名为 configparser。您正在安装的软件包似乎不支持 Python 3。


正确的。 MySQL-python 目前不支持 Python 3。
我的替代方案是什么?我尝试了 PyMySQL3-0.5,但它非常有问题,它在第一次执行调用时崩溃。
@JanBirsa 快速谷歌搜索发现了一些可能性:如果 PyMySQL 不起作用,则有 OurSQLMySQL Connector/Pythona port of MySQL-Python 等。
这是一个移动目标,但我使用 pip3 install mysql-connector。现在可从 MySQL 获得对 python3 的支持。打字时发布的是 2.1.3。
刚刚尝试了 sudo python3 -m pip install mysql-connector,现在它可以工作了。感谢@Longmang 的提示
a
aircraft

这是应该在 Python 2.x 和 3.x 中都可以使用的代码

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

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

为什么不跳过 try 块而只使用 from six.moves import configparser
-1。 six.moves 的全部意义在于将 "provide a consistent interface" 重命名为模块;使用 six 时用 try/except 包装导入会破坏这一点。只需使用 from six.moves import configparser。这里不需要六个;您可以在 except 块中将 from six.moves import configparser 替换为 import ConfigParser as configparser 并获得相同的结果,而无需 six
@MatthiasKuhn 我想我们的意图是让 six 成为 Python 2.X 的要求,而不是 Python 3.X 的要求。
@MartinThoma 这打败了整个观点(正如马克·阿梅里所写的那样)。如果 try/except 检查到位,则没有更多理由使用 six.moves,并且本机名称也可以直接用于 Python 2。
j
jakub
pip install configparser
sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py

然后再次尝试安装 MYSQL-python。这对我有用


超级想法,这应该是一个公认的答案,尽管它是一种极客的方式。
K
Kaushal

python3 不支持 MySQL-python,您可以使用 mysqlclient

如果您在 fedora/centos/Red Hat 上安装以下软件包

yum install python3-devel pip install mysqlclient


raise EnvironmentError("%s not found" % (mysql_config.path,)) OSError: mysql_config not found
@PirateApp 可能没有安装 mysql。在这里查看stackoverflow.com/questions/7475223/…
sudo yum install python3-devel 加载的插件:fastestmirror 从缓存的主机文件加载镜像速度 * base: mirror.web-ster.com * epel: mirrors.cat.pdx.edu * extras: mirror.web-ster.com * ius: mirrors .kernel.org * 更新:mirror.web-ster.com 没有可用的包 python3-devel。错误:无事可做
A
Akif

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

from six.moves import configparser

D
Davis Herring

如果你使用的是 CentOS,那么你需要使用

yum install python34-devel.x86_64 yum groupinstall -y '开发工具' pip3 install mysql-connector pip install mysqlclient


S
Siddhi Kiran Bajracharya

我遇到了同样的问题。事实证明,我需要在我的 centos 上安装 python3 devel。首先,您需要搜索与您的系统兼容的软件包。

yum search python3 | grep devel

然后,将软件包安装为:

yum install -y python3-devel.x86_64

然后,从 pip 安装 mysqlclient

pip install mysqlclient

R
Roy Ash

执行 pip3 install PyMySQL,然后执行 pip3 install mysqlclient。为我工作


A
Abhijit Manepatil

附加信息:

蟒蛇 2x

import ConfigParser

蟒蛇 3x

import configparser

ǝ
ǝlpoodooɟƃuooʞ

我进一步了解 Valeres 的回答:

pip install configparser sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py 然后尝试再次安装MYSQL-python。这对我有用

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


E
Eje

试试对我来说效果很好的 this 解决方案。

基本上是从 brew 重新安装/升级到最新版本的 mysql,然后从 global pip3 而不是 virtualenv pip3 安装 mysqlclientMySQL-Python

然后访问 virtualenv 并成功安装 mysqlclientMySQL-Python


B
Bart Mensfort

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

cp configparser.py ConfigParser.py

您可能有另一个 Python 版本而不是 3.8。


R
Rene B.

对我来说,以下命令有效:

sudo python3 -m pip install mysql-connector

T
Troll

@MaciejNg 之后,我尝试制作副本,但没有成功:

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

因为 configparser.pyConfigParser.py 相同,所以我重命名了文件:

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

您的答案可以通过额外的支持信息得到改进。请edit添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。您可以找到有关如何写出好答案的更多信息in the help center
G
Gideon Kimutai

如何首先检查您正在使用的 Python 版本。

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

这很简单from six.moves import configparser
O
Oliver Wahome

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

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

经过更多研究后,我意识到对于 python 3,ConfigParser 已更改为 configparser,但请注意它具有属性 ConfigParser()


D
DKMDebugin

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

脚步

从链接中为 Mac OS 安装了 Connector/Python 8.0.20 将当前依赖项复制到 requirements.txt 文件中,停用当前的虚拟环境,并使用删除它;如果尚未创建文件,请创建文件; touch requirements.txt 将依赖项复制到文件; python -m pip3 freeze > requirements.txt 停用并删除当前虚拟环境; deactivate && rm -rf 创建了另一个虚拟环境并使用; python -m venv && source /bin/activate 安装以前的依赖项; python -m pip3 install -r requirements.txt


A
AnotherDeveloper

请查看 /usr/bin/python 指向的内容

如果它指向 python3 or higher 更改为 python2.7

这应该可以解决问题。

我收到所有 python 包的安装错误。 Abe Karplus 的解决方案讨论给了我关于可能是什么问题的提示。然后我回忆起我手动将 /usr/bin/pythonpython2.7 更改为 /usr/bin/python3.5,这实际上是导致问题的原因。曾经我reverted一样。它得到了解决。


恢复到 Python 2 以支持 MySQL-python 太过分了;请改用 Python 3 版本的库。
V
Vojtech Ruzicka

这对我有用

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

不应该那样做。请参阅 Abe karplus 的回答。 ConfigParser 在 Python3 中已重命名为 configparser。