我正在尝试 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
说什么?
您可以改为使用 mysqlclient
包作为 MySQL-python 的替代品。它是 MySQL-python
的一个分支,增加了对 Python 3 的支持。
我很幸运
pip install mysqlclient
在我的python3.4 virtualenv之后
sudo apt-get install python3-dev libmysqlclient-dev
这显然是 ubuntu/debian 特有的,但我只是想分享我的成功:)
在 Python 3 中,为了符合 PEP 8,ConfigParser
已重命名为 configparser
。您正在安装的软件包似乎不支持 Python 3。
sudo python3 -m pip install mysql-connector
,现在它可以工作了。感谢@Longmang 的提示
这是应该在 Python 2.x 和 3.x 中都可以使用的代码
显然,您将需要 six
模块,但几乎不可能编写在没有六个版本的情况下在两个版本中都工作的模块。
try:
import configparser
except:
from six.moves import configparser
from six.moves import configparser
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
。
six
成为 Python 2.X 的要求,而不是 Python 3.X 的要求。
six.moves
,并且本机名称也可以直接用于 Python 2。
pip install configparser
sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py
然后再次尝试安装 MYSQL-python
。这对我有用
python3 不支持 MySQL-python,您可以使用 mysqlclient
如果您在 fedora/centos/Red Hat
上安装以下软件包
yum install python3-devel pip install mysqlclient
configparser
的 Python 2/3 兼容性可以通过 six
库简单地解决
from six.moves import configparser
如果你使用的是 CentOS,那么你需要使用
yum install python34-devel.x86_64 yum groupinstall -y '开发工具' pip3 install mysql-connector pip install mysqlclient
我遇到了同样的问题。事实证明,我需要在我的 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
。为我工作
附加信息:
蟒蛇 2x
import ConfigParser
蟒蛇 3x
import configparser
我进一步了解 Valeres 的回答:
pip install configparser sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py 然后尝试再次安装MYSQL-python。这对我有用
我建议链接文件而不是复制它。保存更新。我将文件链接到 /usr/lib/python3/
目录。
试试对我来说效果很好的 this 解决方案。
基本上是从 brew 重新安装/升级到最新版本的 mysql,然后从 global pip3
而不是 virtualenv pip3
安装 mysqlclient
或 MySQL-Python
。
然后访问 virtualenv
并成功安装 mysqlclient
或 MySQL-Python
。
我仍然有这个问题,所以我转到 /usr/lib/python3.8 并输入 sudoer:
cp configparser.py ConfigParser.py
您可能有另一个 Python 版本而不是 3.8。
对我来说,以下命令有效:
sudo python3 -m pip install mysql-connector
在 @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
如何首先检查您正在使用的 Python 版本。
import six
if six.PY2:
import ConfigParser as configparser
else:
import configparser
from six.moves import configparser
我运行 kali linux-Rolling 并遇到了这个问题,当我尝试在终端中运行 cupp.py 后,更新到 python 3.6.0。经过一些研究和试验,我发现将 ConfigParser
更改为 configparser
对我有用,但后来我遇到了另一个问题。
config = configparser.configparser() AttributeError: module 'configparser' has no attribute 'configparser'
经过更多研究后,我意识到对于 python 3,ConfigParser
已更改为 configparser
,但请注意它具有属性 ConfigParser()
。
我在 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
请查看 /usr/bin/python
指向的内容
如果它指向 python3 or higher
更改为 python2.7
这应该可以解决问题。
我收到所有 python 包的安装错误。 Abe Karplus 的解决方案讨论给了我关于可能是什么问题的提示。然后我回忆起我手动将 /usr/bin/python
从 python2.7
更改为 /usr/bin/python3.5
,这实际上是导致问题的原因。曾经我reverted
一样。它得到了解决。
MySQL-python
太过分了;请改用 Python 3 版本的库。
这对我有用
cp /usr/local/lib/python3.5/configparser.py /usr/local/lib/python3.5/ConfigParser.py
不定期副业成功案例分享
libpython3.5-minimal
包 (sudo apt-get install libpython3.5-minimal
) 就足够了。