Python 3 ImportError:没有名为“ConfigParser”的模块
Posted
技术标签:
【中文标题】Python 3 ImportError:没有名为“ConfigParser”的模块【英文标题】:Python 3 ImportError: No module named 'ConfigParser' 【发布时间】:2012-12-14 18:52:38 【问题描述】:我正在尝试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 年还是一样 :)
【参考方案1】:
在@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
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。【参考方案2】:附加信息:
Python 2x
import ConfigParser
Python 3x
import configparser
【讨论】:
【参考方案3】:对我来说,以下命令有效:
sudo python3 -m pip install mysql-connector
【讨论】:
【参考方案4】:我仍然有这个问题,所以我去 /usr/lib/python3.8 并输入为 sudoer:
cp configparser.py ConfigParser.py
您可能有其他 python 版本而不是 3.8。
【讨论】:
【参考方案5】:我在 Mac OS 10、Python 3.7.6 和 Django 2.2.7 上遇到了同样的错误。在尝试了许多解决方案后,我想借此机会分享对我有用的方法。
步骤
从link 安装了适用于 Mac OS 的连接器/Python 8.0.20
将当前依赖复制到 requirements.txt 文件中,停用当前虚拟环境,并使用删除它;
如果尚未创建文件,则创建文件; touch requirements.txt
复制依赖到文件; python -m pip3 freeze > requirements.txt
停用并删除当前的虚拟环境; deactivate && rm -rf <virtual-env-name>
创建了另一个虚拟环境并使用激活它; python -m venv <virtual-env-name> && source <virtual-env-name>/bin/activate
使用安装以前的依赖项; python -m pip3 install -r requirements.txt
【讨论】:
【参考方案6】:执行pip3 install PyMySQL
,然后执行pip3 install mysqlclient
。
为我工作
【讨论】:
【参考方案7】:我遇到了同样的问题。事实证明,我需要在我的 centos 上安装 python3 devel。首先,您需要搜索与您的系统兼容的软件包。
yum search python3 | grep devel
然后,将包安装为:
yum install -y python3-devel.x86_64
然后,从 pip 安装 mysqlclient
pip install mysqlclient
【讨论】:
【参考方案8】:尝试this 解决方案,这对我来说效果很好。
基本上是从brew重新安装/升级到最新版本的mysql,然后从global pip3
而不是virtualenv pip3
安装mysqlclient
或MySQL-Python
.
然后访问virtualenv
并成功安装mysqlclient
或MySQL-Python
。
【讨论】:
【参考方案9】:如果你使用的是 CentOS,那么你需要使用
yum install python34-devel.x86_64
yum groupinstall -y 'development tools'
pip3 install mysql-connector
pip install mysqlclient
【讨论】:
【参考方案10】:我对 Valeres 的回答更进一步:
pip 安装配置解析器 sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py 然后尝试再次安装 MYSQL-python。这对我有用
我建议链接文件而不是复制它。保存更新。我将文件链接到/usr/lib/python3/
目录。
【讨论】:
【参考方案11】:pip install configparser
sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py
然后尝试再次安装 MYSQL-python。 这对我有用
【讨论】:
【参考方案12】:configparser
的 Python 2/3 兼容性可以通过 six
库简单地解决
from six.moves import configparser
【讨论】:
【参考方案13】:我运行 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()
。
【讨论】:
【参考方案14】:这是一个可以在 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 这完全违背了这一点(正如 Mark Amery 所写)。如果 try/except 检查到位,则没有更多理由使用 six.moves
并且本机名称也可以直接用于 Python 2。【参考方案15】:
首先检查您使用的 Python 版本怎么样。
import six
if six.PY2:
import ConfigParser as configparser
else:
import configparser
【讨论】:
这很简单from six.moves import configparser
【参考方案16】:
python3 不支持 MySQL-python,你可以使用 mysqlclient
如果您在fedora/centos/Red Hat
上安装以下软件包
yum install python3-devel
pip install mysqlclient
【讨论】:
引发 EnvironmentError("%s not found" % (mysql_config.path,)) OSError: mysql_config not found @PirateApp 可能没有安装 mysql。在这里查看***.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。错误:无事可做【参考方案17】:这对我有用
cp /usr/local/lib/python3.5/configparser.py /usr/local/lib/python3.5/ConfigParser.py
【讨论】:
不应该那样做。请参阅 Abe karplus 的回答。 ConfigParser 在 Python3 中已重命名为 configparser。【参考方案18】:您可以改用 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 ,它就像一个魅力!谢谢!【参考方案19】:
在 Python 3 中,ConfigParser
已重命名为 configparser
,以符合 PEP 8。您正在安装的软件包似乎不支持 Python 3。
【讨论】:
正确。 MySQL-python 目前不支持 Python 3。 我有哪些选择?我尝试了 PyMySQL3-0.5,但它非常有问题,它在第一次执行调用时崩溃。 @JanBirsa 快速谷歌搜索发现了一些可能性:如果PyMySQL 不起作用,则有OurSQL、MySQL Connector/Python、a port of MySQL-Python 等。 这是一个移动目标,但我使用 pip3 install mysql-connector。现在可从 MySQL 获得对 python3 的支持。打字时发布的是 2.1.3。 刚刚试过sudo python3 -m pip install mysql-connector
,现在它可以工作了。感谢@Longmang 的提示【参考方案20】:
请看/usr/bin/python
指向什么
如果它指向python3 or higher
,则更改为python2.7
这应该可以解决问题。
我收到所有 python 包的安装错误。 Abe Karplus 的解决方案和讨论给了我关于可能是什么问题的提示。
然后我想起我手动将/usr/bin/python
从python2.7
更改为/usr/bin/python3.5
,这实际上是导致问题的原因。曾经我reverted
一样。它得到了解决。
【讨论】:
恢复到 Python 2 以支持MySQL-python
是矫枉过正;请改用 Python 3 版本的库。以上是关于Python 3 ImportError:没有名为“ConfigParser”的模块的主要内容,如果未能解决你的问题,请参考以下文章
ImportError:没有名为“urllib2”Python 3的模块[重复]
python 3.x ImportError:没有名为“cStringIO”的模块
PyInstaller 与 Python:3.10.0b4 - ImportError:没有名为 _bootlocale 的模块