这里是问题: 我试图像这样安装mysqlclient
C:\ Users \ amccommon349> pip安装mysqlclient 收集mysqlclient 使用缓存的https://files.pythonhosted.org/packages/ec/fd/83329b9d3e14f7344d1 cb31f128e6dbba70c5975c9e57896815dbb1988ad / mysqlclient-1.3.13.tar.gz
安装收集的软件包:mysqlclient
正在运行mysqlclient的setup.py安装...错误
Complete output from command c:\users\amccommon349\appdata\local\programs\python\python36\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\AMCCOM~1\\AppData\\Local\\Temp\\pip-install-qcgo48hf\\mysqlclient\\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\AMCCOM~1\AppData\Local\Temp\pip-record-q4yoftj8\install-record.txt --single-version-externally-managed --compile:
c:\ users \ amccommon349 \ appdata \ local \ programs \ python \ python36 \ lib \ distutils \ d ist.py:261:用户警告:未知分发选项:'long_description_content_ 类型”
warnings.warn(msg)
running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.6
copying _mysql_exceptions.py -> build\lib.win-amd64-3.6
creating build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\__init__.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\compat.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\connections.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\converters.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\cursors.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\release.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\times.py -> build\lib.win-amd64-3.6\MySQLdb
creating build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\__init__.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\CLIENT.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\CR.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\ER.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\FIELD_TYPE.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\FLAG.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\REFRESH.py -> build\lib.win-amd64-3.6\MySQLdb\constants
运行build_ext
building '_mysql' extension
creating build\temp.win-amd64-3.6
creating build\temp.win-amd64-3.6\Release
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\bin\HostX86\x64\cl.exe /c/nologo/Ox /W3 /GL /DNDEBUG /MD -Dversion_info=(1,3,13,'final',0) -D__version__=1.3.13 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include" -Ic:\users\amccommon349\appdata\local\programs\python\python36\include -Ic:\users\amccommon349\appdata\local\programs\python\python36\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\um" "-IC:\ProgramFiles (x86)\Windows Kits\10\include\10.0.17134.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\cppwinrt" /Tc_mysql.c /Fobuild\temp.win-amd64-3.6\Release\_mysql.obj /Zl
_mysql.c
_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\\2017\\BuildTools\\VC\\Tools\\MSVC\\14.14.26428\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
我确保已拥有Visual Studio构建工具所需的所有文件,下载了mysql-python连接器,并更新了pip和设置工具。我是一个完整的初学者,非常感谢您提供有关如何解决此错误的任何意见。
答案 0 :(得分:19)
您可以使用https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient.Then下载适用于python版本的非官方Windows二进制文件,并使用pip安装它。这样,您就可以避免使用Visual Studio构建工具的麻烦。
只需下载最适合您的mysqlclient.whl文件。我认为您的情况应该是
mysqlclient‑1.3.13‑cp36‑cp36m‑win_amd64.whl
并运行
function createAPinSPListOld(name,system,start,duration) {
var binary = "";
var srcUrl = can't show this;
var destURL = can't show this either;
// create metadata
var data = {
__metadata: {'type': 'SP.Data.NXE_x0020_AP_x0020_TrackerItem'},
System: system,
Planned_x0020_Start: start,
Required_x0020_Time_x0020__x0028_hrs_x0029_: duration,
};
$().SPServices({
operation: "GetItem",
Url: srcUrl,
completefunc: function (xData, Status) {
binary = $(xData.responseXML).find("Stream").text();
console.log(xData);
console.log(binary);
// create item in SP list
$.ajax({
url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('NXE Action Plan Tracker')/rootfolder/files/add(url="+name+",overwrite=true)",
type: "POST",
body: binary,
headers: {
"accept": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"content-type": "application/json;odata=verbose",
"content-length":500000
},
data: JSON.stringify(data),
success: function (data) {
console.log("Created successfully!")
},
error: function (error) {
alert("cannot add for some reason");
alert(JSON.stringify(error));
}
});
}
});
}
答案 1 :(得分:5)
尝试在64位环境中为python32安装mysqlclient时发生此错误。 卸载python,然后重新安装64位版本。然后pip install mysqlclient将无错误运行。
答案 2 :(得分:1)
这是Windows 10上64位版本的python的问题。下面为我修复了该问题。
此后,我可以使用pip install mysqlclint
安装mysqlclient。
希望有人会提出一个不需要降级到32位的更好的解决方案,因为这不是一个好的解决方案,它可以工作。我找到了解决mysql问题的方法,但是在尝试安装频道时又遇到了问题。似乎python 64位正在寻找32位库,而不是Windows上的64位库。到目前为止,该解决方案已解决了Windows上所有的python构建问题。
答案 3 :(得分:1)
以上所有解决方案都不适合我。显然,我不得不将Python从3.7.x
降级到3.6.4
,这为我解决了这个问题。 Downloadlink代表python=3.6.4
。
我建议为此创建一个新的虚拟环境,而不要卸载您的主python。查找有关如何创建venv
here的大量文档。
答案 4 :(得分:1)
为了解决这个问题,我去了this page
并下载了 mysqlclient‑1.4.6‑pp373‑pypy36_pp73‑win32.whl 。
然后将其放置在特定文件夹中,打开其中的终端,激活虚拟环境 venv 并运行
pip install mysqlclient-1.4.6-cp39-cp39-win_amd64.whl
答案 5 :(得分:1)
有时错误也出在解释器上,就我而言。我使用的是 3.8 python 并已将其安装在 D:/ 中,因此安装不正确。
所以我卸载它并再次正确安装它并且它工作了。
答案 6 :(得分:0)
我遇到了这个问题(完全相同的错误),并尝试了上述所有解决方案,但它们都不起作用(至少对我而言),实际上,我要为解决这个问题而烦恼,直到我找到了解决方案。很奇怪,简单和愚蠢的方式!
我执行了以下步骤,以便解决问题并再次过上幸福的生活。
首先,我从here
安装了MySQL Connector/C
第二个(安装完成后)我将 MySQL Connector C 6.1
文件夹从 Program files/MySQL
复制到了Program files (x86)/MySQL
请注意,如果MySQL
中不存在Program files (x86)
文件夹(对我而言不存在),则可能必须创建该文件夹
就这么简单,它对我有用,似乎对于某些(或全部)64位窗口,pip或更可能是mysqlclient
安装脚本来说,它只在Program files (x86)
文件夹中搜索一些MySQL文件(例如'mysql.h'),并且不会搜索Program files
,并且由于在Program files (x86)
中找不到任何内容,导致错误非常愚蠢!
答案 7 :(得分:0)
在命令行中,只需键入:
channel
代替:
#include<stdio.h>
int &fun() //while int *fun() executes with no problem
{
static int x = 5;
return &x;
}
int main()
{
int *p = fun();
fflush(stdin);
printf("%d", *p);
return 0;
}
(这应该显示有关该版本的更多详细信息,包括32位还是64位)
答案 8 :(得分:0)
浪费了很多时间解决此错误,我发现至少对我有用的解决方案。
当我尝试安装MYSQL Client
pip install mysqlclient
第一个错误
MySQLdb / _mysql.c(29):致命错误C1083:无法打开包含文件:'mysql.h':无此类文件或目录
还尝试安装Django频道
pip install -U channels
第二个错误
错误:需要Microsoft Visual C ++ 14.0。使用“ Microsoft Visual C ++生成工具”获取它:https://visualstudio.microsoft.com/downloads/
下载构建工具: Microsoft Build Tools
堆栈溢出: How to install/select required Build Tools
已安装的构建工具。 (快乐编码)
@Ralph Ritoch 解决方案对我和其他收到Mysql Client错误的人都有效。
但是我也安装了Django Channels,所以我按照下面提到的步骤进行操作
执行以下步骤
我还安装了Django Channels 2.2.0,但没有收到任何错误消息。
(注意)
MySQL连接器已安装到x86目录
将c:\ Program Files \ MySQL \ MySQL Connector C 6.0.2 \目录复制到c:\ Program Files(x86)\ MySQL \ MySQL Connector C 6.1 \
所以我没有更改MySQL Connector的目录。 (您也可以检查此内容)
也许为您工作!
Other Stack solution to change dirctory
可能的原因
为什么会出错?
感谢所有发布解决方案的人。
答案 9 :(得分:0)
好吧,这是我见过的最愚蠢的错误之一。
我拥有最新的pip3和Python 3.7.3 32bit,并且正在为我的Python安装轮子。...我偶然发现了这个STUPID错误。...
可能我的情况有些不同,但是您可以通过仔细查看错误来解决。....最初似乎缺少某些东西,您开始责怪您,Windows,32/64位,并且列表还在不断增加。
退后一步... 只要退后一步,只需阅读令人讨厌的红色错误消息即可。...请仔细阅读。
就我而言
ERROR: Command errored out with exit status 1:
command: 'c:\users\myUserName\appdata\local\programs\python\python37-32\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\MASTER~1\\AppData\\Local\\Temp\\pip-install-z7x81g2q\\mysqlclient\\setup.py'"'"'; __file__='"'"'C:\\Users\\MASTER~1\\AppData\\Local\\Temp\\pip-install-z7x81g2q\\mysqlclient\\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\MASTER~1\AppData\Local\Temp\pip-record-z1mvci5v\install-record.txt' --single-version-externally-managed --compile
cwd: C:\Users\MASTER~1\AppData\Local\Temp\pip-install-z7x81g2q\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\constants
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\constants
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\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MT -Dversion_info=(1,4,2,'post',1) -D__version__=1.4.2.post1 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb" -Ic:\users\MyUserName\appdata\local\programs\python\python37-32\include -Ic:\users\MyUserName\appdata\local\programs\python\python37-32\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /TcMySQLdb/_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\\BuildTools\\VC\\Tools\\MSVC\\14.21.27702\\bin\\HostX86\\x86\\cl.exe' failed with exit status 2
----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\users\MyUserName\appdata\local\programs\python\python37-32\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\MASTER~1\\AppData\\Local\\Temp\\pip-install-z7x81g2q\\mysqlclient\\setup.py'"'"'; __file__='"'"'C:\\Users\\MASTER~1\\AppData\\Local\\Temp\\pip-install-z7x81g2q\\mysqlclient\\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\MASTER~1\AppData\Local\Temp\pip-record-z1mvci5v\install-record.txt' --single-version-externally-managed --compile Check the logs for full command output.
您读得好吗?...我假设您拥有一切...构建工具,MySQL Connector C 6.1 ...甚至将其移至Program Files(x86)...所以错了... ?? ...
现在仔细看看
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MT -Dversion_info=(1,4,2,'post',1) -D__version__=1.4.2.post1 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb" -
我敢肯定,您看到了它...仍然没有?....让我为您加粗
"-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb" -
mariadb
好吧,这不是最愚蠢的...安装程序会寻找mariadb 包含,然后是库
只需访问mariadb网站并下载MariaDB C / C ++连接器并安装...
好吧,还没有结束。
转到C:\ Program Files(x86)\ MySQL \ MySQL Connector C 6.1 \ include
并创建文件夹mariadb ...并复制并粘贴mariaDb连接器安装 include 文件夹中的内容
再次 走...去
C:\ Program Files(x86)\ MySQL \ MySQL Connector C 6.1 \ lib,然后再次对 lib 文件夹进行相同的钻探
所以你应该有
C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb
C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\lib\mariadb
现在点击pip3 install mysqlclient
并享受无without安装...的结束
Successfully installed mysqlclient-1.4.2.post1
答案 10 :(得分:0)
我在Django项目中尝试相同的方法。
我尝试使用:
pip install mysql-python
这给了我以下错误:
'mysql.h': No such file or directory
。
摆弄reuqirements.txt后,又给了我另一个错误
Downloading https://files.pythonhosted.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.zip (108kB)
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-43_6cfva/MySQL-python/setup.py", line 13, in <module>
from setup_posix import get_config
File "/tmp/pip-install-43_6cfva/MySQL-python/setup_posix.py", line 2, in <module>
from ConfigParser import SafeConfigParser
ModuleNotFoundError: No module named 'ConfigParser'
最终使用此功能对我有用:
pip install mysql-connector
import mysql.connector
答案 11 :(得分:0)
我想对John的回答发表评论,但是我的评论太长了,所以我不得不再作一个回答。抱歉。
约翰,这对我很有帮助,谢谢。对于包括我在内的许多人来说,不正确地阅读日志是一个坏习惯。
但是,我没有下载mariadb连接器(或在网上搜索预建的轮子),而是设法使用oracle的mysql连接器来做到这一点。而且我更喜欢做符号链接,而不是复制文件。这是我使用Windows 10 x64,python 3.8 x64和oracle的mysql连接器x64所做的事情:
# run this on an elevated command prompt if your user does not have permission to make symbolic links
# download and install https://downloads.mysql.com/archives/c-c/
mklink /d "C:\Program Files\MySQL\MySQL Connector C 6.1\include\mariadb" "C:\Program Files\MySQL\MySQL Connector C 6.1\include\mysql"
mklink /d "C:\Program Files (x86)\MySQL" "C:\Program Files\MySQL"
mklink /d "C:\Program Files\MySQL\MySQL Connector C 6.1\lib\mariadb" "C:\Program Files\MySQL\MySQL Connector C 6.1\lib\vs14"
mklink "C:\Program Files\MySQL\MySQL Connector C 6.1\lib\vs14\mariadbclient.lib" "C:\Program Files\MySQL\MySQL Connector C 6.1\lib\vs14\mysqlclient.lib"
SET INCLUDE=C:\Program Files\MySQL\MySQL Connector C 6.1\include;%INCLUDE%
python3 -m pip install mysqlclient
就是这样。
答案 12 :(得分:0)
这就是解决我的问题的原因
它可能安装在以下位置
C:\Program Files\MySQL\MySQL Connector C 6.1
MySQL Connector C 6.1
复制到C:\Program Files (x86)\MySQL\MySQL Connector C 6.1
pip3 install mysqlclient
。成功。干得好!
不成功?
可能安装在该位置
C:\Program Files\MariaDB\MariaDB Connector C 64-bit
C:\Program Files\MariaDB\MariaDB Connector C 64-bit\include
并将其粘贴到一个名为mariadb
的文件夹中并将其粘贴到该位置
C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\
从
复制内容 C:\Program Files\MariaDB\MariaDB Connector C 64-bit\lib
并将其粘贴到一个名为mariadb
的文件夹中并将其粘贴到该位置
`C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\lib`
pip3 install mysqlclient
。这对我有用
答案 13 :(得分:0)
感谢所有答案,但这不足以解决我的问题。但是,它使我走上了正确的道路:)。 为了解决缺少sys / types.h的错误,我必须将此type.h文件从“ c:\ Program Files(x86)\ Windows Kits \ 10 \ Include \ 10.0.17763.0 \ ucrt \ sys \”复制到“ c:\ Program Files(x86)\ MySQL \ MySQL Connector C 6.1 \ include \ mariadb \ sys \“。然后,我终于可以安装mysqlclient。
答案 14 :(得分:0)
对我来说,pip install mysqlclient
抛出错误...
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\\Community\\VC\\Tools\\MSVC\\14.20.27508\\bin\\HostX86\\x86\\cl.exe' failed with exit status 2
似乎mysqlclient是64位。 因此,我强制Python和pip都从64位目录执行。
明确地...
不要run python -m venv myvemv and pip install -r requirements.txt
,
运行以下内容...
C:\Users\mr\AppData\Local\Programs\Python\Python37\python -m venv [path to your virtual env goes here]
和
C:\Users\mr\AppData\Local\Programs\Python\Python37\Scripts\pip install -r requirements.txt
答案 15 :(得分:0)
还有其他方法可以将 mysqlclient 安装到您的系统中,我无法通过它显示的命令提示符直接安装它:
启动器中的致命错误:无法创建进程
尝试了其他几种替代方法并得到了解决方案: