Python 3 ImportError:没有名为“ConfigParser”的模块
- 2025-01-07 08:44:00
- admin 原创
- 101
问题描述:
我正在尝试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$
有什么想法吗?
解决方案 1:
在 Python 3 中,ConfigParser
已重命名为configparser
以符合 PEP 8。看起来您正在安装的软件包不支持 Python 3。
解决方案 2:
您可以将该mysqlclient
包用作 MySQL-python 的替代品。它是 的一个分支,MySQL-python
增加了对 Python 3 的支持。
我很幸运
pip install mysqlclient
在我的python3.4虚拟环境中
sudo apt-get install python3-dev libmysqlclient-dev
这显然是 ubuntu/debian 特有的,但我只是想分享我的成功:)
解决方案 3:
这是一个可以在 Python 2.x 和 3.x 中运行的代码
显然,您将需要该six
模块,但是如果没有六个模块,几乎不可能编写出在两个版本中都能运行的模块。
try:
import configparser
except:
from six.moves import configparser
解决方案 4:
pip install configparser
sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py
然后尝试mysql-python
再次安装。这对我有用。
解决方案 5:
MySQL-python 在 python3 上不受支持,您可以使用mysqlclient
如果您正在fedora/centos/Red Hat
安装以下包
yum install python3-devel
pip install mysqlclient
解决方案 6:
附加信息:
Python 2x
import ConfigParser
Python 3x
import configparser
解决方案 7:
如果你使用的是 CentOS,那么你需要使用
yum install python34-devel.x86_64
yum groupinstall -y 'development tools'
pip3 install mysql-connector
pip install mysqlclient
解决方案 8:
Python 2/3 的兼容性可以通过库configparser
简单解决six
from six.moves import configparser
解决方案 9:
我遇到了同样的问题。原来,我需要在我的 centos 上安装 python3 devel。首先,您需要搜索与您的系统兼容的软件包。
yum search python3 | grep devel
然后,安装该包:
yum install -y python3-devel.x86_64
然后,从 pip 安装 mysqlclient
pip install mysqlclient
解决方案 10:
执行pip3 install PyMySQL
然后pip3 install mysqlclient
。对我有用
解决方案 11:
我进一步了解了 Valeres 的回答:
pip install configparser sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py 然后尝试再次安装 MYSQL-python。这对我有用
我建议链接文件而不是复制它。它是保存以进行更新。我将文件链接到/usr/lib/python3/
目录。
解决方案 12:
对我来说以下命令有效:
sudo python3 -m pip install mysql-connector
解决方案 13:
尝试一下这个对我来说很有效的解决方案。
基本上,它是从brew重新安装/升级到最新版本的mysql,然后从安装或而不是。mysqlclient
`MySQL-Pythonglobal pip3
virtualenv pip3`
然后访问virtualenv
并成功安装mysqlclient
或MySQL-Python
。
解决方案 14:
我仍然有这个问题,所以我转到 /usr/lib/python3.8 并以 sudoer 身份输入:
cp configparser.py ConfigParser.py
您可能拥有除 3.8 之外的其他 Python 版本。
解决方案 15:
按照@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
解决方案 16:
首先检查一下你正在使用的 Python 版本。
import six
if six.PY2:
import ConfigParser as configparser
else:
import configparser
解决方案 17:
我运行 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()
。
解决方案 18:
我在 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 <virtual-env-name>
创建了另一个虚拟环境并使用以下命令激活它;
python -m venv <virtual-env-name> && source <virtual-env-name>/bin/activate
使用以下方式安装以前的依赖项;
python -m pip3 install -r requirements.txt
解决方案 19:
根据您的操作系统是 centos,如果您不知道 configparser.py 或 ConfigParser.py 在哪里,请使用 python3
pip3 安装 configparser
查找/-name“configparser.py”
cd /usr/local/lib/python3.6/site-packages(根据您的环境)
cp configparser.py 配置解析器.py
解决了这个问题
解决方案 20:
请看一下/usr/bin/python
指向什么
如果它指向python3 or higher
改变python2.7
这应该可以解决问题。
我遇到了所有 python 包的安装错误。Abe Karplus 的解决方案和讨论给了我提示,让我知道问题可能出在哪里。然后我回想起我手动将 from 更改为/usr/bin/python
,python2.7
这/usr/bin/python3.5
实际上是导致问题的原因。我这样做后reverted
,问题就解决了。
解决方案 21:
这对我有用
cp /usr/local/lib/python3.5/configparser.py /usr/local/lib/python3.5/ConfigParser.py