我正在尝试使用pip install软件包,但是却得到了MySQL-python

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相同的错误?

#1 楼

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

评论


正确。 MySQL-python当前不支持Python 3。

– Michael Mior
2012年12月30日下午3:49

我有什么选择?我尝试了PyMySQL3-0.5,但是它的错误非常多,第一次执行调用时就会崩溃。

–如果__name__为None
2012-12-30 14:46

@JanBirsa谷歌快速搜索发现了几种可能性:如果PyMySQL无法正常工作,则可以使用OurSQL,MySQL Connector / Python,MySQL-Python的端口等。

–安倍·卡普拉斯(Abe Karplus)
2012-12-30 18:34



一个移动的目标,但我使用pip3 install mysql-connector。现在可以从MySQL获得python3支持。打字时的版本是2.1.3。

–龙芒
16年6月7日在9:42

刚刚尝试了sudo python3 -m pip install mysql-connector,现在可以正常工作了。感谢您的提示@Longmang

–马可
18 Mar 26 '18在14:35

#2 楼

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

我在python3.4 virtualenv中的


pip install mysqlclient


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

评论


在CentOS上,在安装mysqlclient之前运行“ yum install python-devel mysql-devel”。

–郑乔
17年4月6日在7:50

请注意,这是一个GPL软件包,因此,如果使用此模块,则还需要使用GPL发行程序。

– bogdan.mustiata
17年9月28日在13:23

在Debian上安装libpython3.5-minimal软件包就足够了(sudo apt-get install libpython3.5-minimal)。

–patryk.beza
17-10-4在10:12



在OSX上,应在安装mysqlclient之前运行“ brew install mysql”。

–ghostishev
18年4月27日在9:40

我用pip3 install mysqlclient,它像一个魅力!谢谢!

–earnshae
18年8月27日在5:14

#3 楼

这是一个可以在Python 2.x和3.x上都可以使用的代码。

显然,您将需要six模块,但是几乎不可能编写在两个版本中都没有六个版本的模块。 />
try:
    import configparser
except:
    from six.moves import configparser


评论


为什么不跳过try块,而仅使用6个。moves import configparser

– Matthias Kuhn
2015年11月10日19:20

-1。 6.moves的全部重点是为重命名的模块“提供一致的接口”。使用try / except来包装导入时,如果使用六个失败了。只需从six.moves导入configparser使用。这里不需要六个。您可以从六个替换。在您的except块中将import ConfigParser作为import ConfigParser移动为configparser,无需六个即可实现相同的结果。

– Mark Amery
16年4月13日在12:17

@MatthiasKuhn我想打算只对Python 2.X提出六个要求,但对Python 3.X不提出要求。

–马丁·托马
18-09-17在19:01

@MartinThoma这打败了整个观点(正如Mark Amery所写)。如果进行了try / except检查,则没有更多的理由使用six.moves,并且本地名称也可以直接用于Python 2。

– Matthias Kuhn
18-09-18在4:53

#4 楼

pip install configparser
sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py


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

#5 楼

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

如果在fedora/centos/Red Hat上,请安装以下软件包br />

评论


引发EnvironmentError(“找不到%s”%(mysql_config.path,))OSError:找不到mysql_config

– PirateApp
18年3月14日在6:14

@PirateApp可能未安装mysql。在这里检查stackoverflow.com/questions/7475223/…

– Kaushal
18年7月3日在9:28



sudo yum install python3-devel加载的插件:最快的镜像从缓存的主机文件加载镜像速度*基本:mirror.web-ster.com * epel:mirrors.cat.pdx.edu *其他:mirror.web-ster.com * ius:镜像.kernel.org *更新:mirror.web-ster.com没有可用的软件包python3-devel。错误:无事可做

– viru
19年1月3日在20:49

#6 楼

如果您正在使用CentOS,则需要使用


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


#7 楼

只需通过configparser库即可解决q2 / 1203的Python 2/3的兼容性

from six.moves import configparser


#8 楼

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

yum search python3 | grep devel


,然后将软件包安装为:

yum install -y python3-devel.x86_64


然后从pip安装mysqlclient

pip install mysqlclient


#9 楼

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

#10 楼

我进一步了解了Valeres的答案:


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


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

#11 楼

尝试使用对我来说效果很好的解决方案。

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

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

#12 楼

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

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


评论


从六开始这将非常简单。moves import configparser

– Akif
18年3月7日在8:12

#13 楼

我运行kali linux- Rolling,并在更新到python 3.6.0之后尝试在终端中运行cupp.py时遇到了这个问题。经过一些研究和试验,我发现将ConfigParser更改为configparser对我有用,但随后又遇到了另一个问题。 3 config = configparser.configparser() AttributeError: module 'configparser' has no attribute 'configparser'更改为ConfigParser,但请注意,它具有属性configparser

#14 楼

我在Mac OS 10,Python 3.7.6和Django 2.2.7上遇到了相同的错误。在尝试了众多解决方案之后,我想借此机会分享对我有用的东西。 link

将当前依赖项复制到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


#15 楼

对我来说,以下命令有效:
sudo python3 -m pip install mysql-connector


#16 楼

我仍然有这个问题,因此我进入/usr/lib/python3.8并输入sudoer:
cp configparser.py ConfigParser.py

您可能会使用除3.8以外的另一个python版本。

#17 楼

请看看/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版本。

– Mark Amery
16年4月17日在19:06

#18 楼

这对我有用

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


评论


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

–鲍勃·尤普拉特(Bob Yoplait)
17年5月11日在10:06