Python 2.7:没有名为configparser的模块。

9

我在Flask中尝试运行db_create.py,但出现以下错误:

from six.moves.configparser import ConfigParser
ImportError: No module named configparser

即使成功执行了pip install,仍然出现相同的错误代码。
我看到的解决方案针对的是Python 3,而不是更低版本。

1
在Python<3中,configparser模块被称为ConfigParser(参见此处)。因此,我猜问题的关键是db_create.py脚本只能在Python3中运行。您能分享一下您从哪里获取了该脚本吗? - lemonhead
1
另外,就我个人而言,我在我的py2.7安装中运行了“pip install six”,然后在我的python-2.7 shell中,我能够运行:“from six.moves.configparser import ConfigParser”。 - lemonhead
Six已经安装,configparser包也已经安装,但是当我尝试您的建议时,它告诉我没有名为configparser的模块。 - fstopzero
2
嗯...实际上我期望它是py2.7的驼峰式ConfigParser,例如对我而言它是“/usr/lib/python2.7/ConfigParser.pyc”。你是否执行了pip install ConfigParser - lemonhead
我已经完成了。现在出现了一个奇怪的问题 - six.file 和 ConfigParser.file 在同一个包文件夹中 ('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python'),而 configparser 却在另一个文件夹中:'/Library/Python/2.7/site-packages/configparser.pyc'。然而,ImportError 是关于 configparser 的 - 不是驼峰式的。 - fstopzero
显示剩余19条评论
2个回答

6

如果有人在关注,这很可能是由于旧版本(损坏的)six模块造成的,例如可以参考https://github.com/Parsely/streamparse/issues/113

这导致 six.moves 几乎为空(不包含 configparser 模块)

修复方法是升级使用的six版本。


4

我正在使用CENTOS RHEL 7,Python版本为2.7.5,pip版本为8.1.2,并已通过以下方式修复:

cd /home/user/
sudo pip install configparser

这项工作已经为我完成。 但是 以前我安装了:

cd /home/user/
pip install --user pytz requests tqdm tzlocal python-dateutil

毫无问题。

想要知道您的Python版本和检查configparser,请查看:

python --version

python -c 'import six; print(six.__version__)'

python -c 'import six.moves; print(dir(six.moves))'

我之前安装了configparser,但是它没有起作用,所以我认为你需要在/home/user_directory上安装所有Python pip的依赖和库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接