使用 pip 安装 mysqlclient 时如何解决此问题

Posted

技术标签:

【中文标题】使用 pip 安装 mysqlclient 时如何解决此问题【英文标题】:How to fix this problem when installing mysqlclient using pip 【发布时间】:2019-12-20 08:55:14 【问题描述】:

我正在尝试使用 django 并使用 mysql 作为数据库。我最初让它工作得很好,但我最近更改了用户帐户的名称,这就是一切都出错的地方。我使用了 pip install mysqlclient 但下面的错误是我得到的。有没有办法以另一种方式安装mysqlclient?

我正在使用 django 的最新版本,并且正在使用可视代码。谢谢

    ERROR: Command errored out with exit status 1:
     command: 'c:\users\jacob\appdata\local\programs\python\python37-32\python.e
xe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\JACOB
\\AppData\\Local\\Temp\\pip-install-ehb3yr50\\mysqlclient\\setup.py'"'"'; __file
__='"'"'C:\\Users\\JACOB\\AppData\\Local\\Temp\\pip-install-ehb3yr50\\mysqlclien
t\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read
().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__,
'"'"'exec'"'"'))' install --record 'C:\Users\JACOB\AppData\Local\Temp\pip-record
-hbel0tdu\install-record.txt' --single-version-externally-managed --compile
         cwd: C:\Users\JACOB\AppData\Local\Temp\pip-install-ehb3yr50\mysqlclient
\
    Complete output (30 lines):
    running install
    running build
    running build_py
    creating build
    creating build\lib.win32-3.7
    creating build\lib.win32-3.7\MySQLdb
    copying MySQLdb\__init__.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\_exceptions.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\compat.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\connections.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\converters.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\cursors.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\release.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\times.py -> build\lib.win32-3.7\MySQLdb
    creating build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\__init__.py -> build\lib.win32-3.7\MySQLdb\constan
ts
    copying MySQLdb\constants\CLIENT.py -> build\lib.win32-3.7\MySQLdb\constants

    copying MySQLdb\constants\CR.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\ER.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\FIELD_TYPE.py -> build\lib.win32-3.7\MySQLdb\const
ants
    copying MySQLdb\constants\FLAG.py -> build\lib.win32-3.7\MySQLdb\constants
    running build_ext
    building 'MySQLdb._mysql' extension
    creating build\temp.win32-3.7
    creating build\temp.win32-3.7\Release
    creating build\temp.win32-3.7\Release\MySQLdb
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\
14.22.27905\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MT -Dversion
_info=(1,4,4,'final',0) -D__version__=1.4.4 "-IC:\Program Files (x86)\MySQL\MySQ
L Connector C 6.1\include\mariadb" -Ic:\users\jacob\appdata\local\programs\pytho
n\python37-32\include -Ic:\users\jacob\appdata\local\programs\python\python37-32
\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too
ls\MSVC\14.22.27905\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual S
tudio\2019\Community\VC\Tools\MSVC\14.22.27905\include" "-IC:\Program Files (x86
)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits
\10\include\10.0.18362.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include
\10.0.18362.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.183
62.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt" "
-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt" /TcMySQL
db/_mysql.c /Fobuild\temp.win32-3.7\Release\MySQLdb/_mysql.obj /Zl /D_CRT_SECURE
_NO_WARNINGS
    _mysql.c
    MySQLdb/_mysql.c(29): fatal error C1083: Cannot open include file: 'mysql.h'
: No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Comm
unity\\VC\\Tools\\MSVC\\14.22.27905\\bin\\HostX86\\x86\\cl.exe' failed with exit
 status 2
    ----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\users\jacob\appdata\local\pro
grams\python\python37-32\python.exe' -u -c 'import sys, setuptools, tokenize; sy
s.argv[0] = '"'"'C:\\Users\\JACOB\\AppData\\Local\\Temp\\pip-install-ehb3yr50\\m
ysqlclient\\setup.py'"'"'; __file__='"'"'C:\\Users\\JACOB\\AppData\\Local\\Temp\
\pip-install-ehb3yr50\\mysqlclient\\setup.py'"'"';f=getattr(tokenize, '"'"'open'
"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.clos
e();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\JA
COB\AppData\Local\Temp\pip-record-hbel0tdu\install-record.txt' --single-version-
externally-managed --compile Check the logs for full command output.

【问题讨论】:

【参考方案1】:

Linux 用户

首先,安装以下依赖项:

sudo apt-get install python3.9-dev libmysqlclient-dev

# don't forget to change python version as per your virtual environment
# since I created my virtual environment with python3.9 that is why I 
# have mentioned the same version above

然后安装mysqlclient:

pip install mysqlclient

【讨论】:

【参考方案2】:

到这个site根据python版本下载包。并使用 pip install 文件名 就像我有 python 3.7.1 并下载红色圆圈中的文件并打开下载文件的终端并安装该文件,例如 pip install mysqlclient-1.4.4-cp37-cp37m-win32.whl

在设置文件中

DATABASES = 
    'default': 
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'shoping_cart',
        'HOST': 'localhost',
        'USER': 'root',
        'PASSWORD':'',
        'PORT': '3306',

    

【讨论】:

我的python版本是3.8.1,系统是64位。但是 32 位 whl 文件对我有用 这仅适用于 Windows,对吗?在 macOS 中不支持【参考方案3】:

是的,我刚刚仔细检查了一遍,您应该可以使用“brew”安装程序。基本上你错过了'openssl'依赖。所以你也可以只安装它然后获取mysql。

【讨论】:

什么是 brew 安装程序?抱歉,我是新手 Brew 是 Mac 和 Linux 系统上的安装程序。从他们的网站安装它,它就像 pip:brew.sh 对不起,我在 windows 上【参考方案4】:

向我们发送“pip freeze”可能会有所帮助。还有你的python版本是什么? 您是否尝试过“brew”而不是“pip”安装程序?

查看这个答案:How to install Python MySQLdb module using pip?

【讨论】:

astroid==2.2.5 colorama==0.4.1 Django==2.2.4 isort==4.3.21 lazy-object-proxy==1.4.1 mccabe==0.6.1 mysql- client==0.0.1 mysql-connector-python==8.0.17 protobuf==3.9.1 pylint==2.3.1 PyMySQL==0.9.3 pytz==2019.2 六==1.12.0 sqlparse==0.3.0 typed-ast==1.4.0 utils==0.9.0 wrapt==1.11.2 这是我的 pip freeze 我不知道它是什么意思。我正在使用 python 3.7.4 看来你已经有了一个 mysql-client==0.0.1 。不要担心是新的,pip freeze 基本上是您系统上所有已安装模块的列表。因此,这是了解您需要什么以及缺少什么的好方法。 每当我尝试运行 django 时,它都会说我没有它,这就是我的问题所在 哦!好的,按照这个视频中的步骤,你应该很好:youtube.com/watch?v=6SnE0r7g2lE

以上是关于使用 pip 安装 mysqlclient 时如何解决此问题的主要内容,如果未能解决你的问题,请参考以下文章

使用pip install mysqlclient命令安装mysqlclient失败?(基于Python)

无法在 ubuntu 上使用 pip 安装 mysqlclient [重复]

如何在python中安装mysqlclient?

Linux上使用pip 安装mysqlclient,pip install mysqlclient==2.0.1遇到的问题:OSError: mysql_config not found

pip install mysqlclient 安装失败

MacOS下安装使用pip方式安装mysqlclient