Python 3 ImportError:没有命名为&#39的模块;

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

什么好主意吗?

608712 次浏览

在Python 3中,为了符合PEP 8, ConfigParser已被重命名为configparser。看起来您正在安装的包不支持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模块,但如果没有6,几乎不可能编写在两个版本中都可以工作的模块。

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

劳驾看看/usr/bin/python指向什么

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

这应该能解决问题。

我得到所有python包的安装错误。Abe Karplus的解决方案讨论给了我可能出问题的提示。 然后我回忆起我手动将/usr/bin/pythonpython2.7更改为/usr/bin/python3.5,这实际上是导致问题的原因。一旦我reverted相同。问题解决了。< / p >

这对我很有效

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

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

  1. yum install python34-devel.x86_64
  2. yum groupinstall -y 'development tools'
  3. pip3 install mysql-connector
  4. pip install mysqlclient

在python3上不支持MySQL-python,您可以使用mysqlclient代替它

如果你在fedora/centos/Red Hat上安装以下包

  1. yum install python3-devel
  2. pip install 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对我有用,但随后我遇到了另一个问题。

config = configparser.configparser() AttributeError: module 'configparser'没有属性'configparser'

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

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

from six.moves import configparser
pip install configparser
sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py

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

尝试解决方案,这对我来说很好。

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

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

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

pip install 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 install PyMySQL,然后执行pip3 install mysqlclient。 为我工作

我在Mac OS 10, Python 3.7.6 &Django 2.2.7。我想利用这个机会分享在尝试了许多解决方案后对我有效的方法。

步骤

  1. 安装连接器/Python 8.0.20 for Mac OS from link

  2. 将当前依赖项复制到requirements.txt文件中,停用当前虚拟环境,并使用;

    创建文件(如果还没有创建);touch requirements.txt

    将依赖项复制到文件;python -m pip3 freeze > requirements.txt

    禁用并删除当前虚拟环境;deactivate && rm -rf <virtual-env-name> < / p >

  3. 创建另一个虚拟环境,并使用;python -m venv <virtual-env-name> && source <virtual-env-name>/bin/activate

  4. 使用;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.pyConfigParser.py是相同的,所以我重命名了文件:

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

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

  1. pip3 install configparser .

  2. find / name "configparser.py"

  3. cd /usr/local/lib/python3.6/site-packages(基于您的环境)

  4. cp configparser.py configparser.py

解决问题