解决windows64位系统上安装mysql-python报错

Posted taotao12

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决windows64位系统上安装mysql-python报错相关的知识,希望对你有一定的参考价值。

解决windows64位系统上安装mysql-python报错

 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yu12377/article/details/79525470

一、 背景

python项目中需要操作mysql,于是运行:

pip install MySQL-python

报一连串的错误,前面的错误根据提示都好解决,但被下面的错误一直卡住,好一翻折腾才解决,所以在此记录以备忘。

Cannot open include file: ‘config-win.h’: No such file or directory” while installing mysql-python

二、 安装

1. 安装64位版本的python

https://www.python.org/ftp/python/2.7.14/python-2.7.14.amd64.msi

2. 安装VCForPython

去微软官网下载 
没有安装时会报如下错误:

C:UsersadminDesktop>pip install mysql-python
Collecting mysql-python
  Using cached MySQL-python-1.2.5.zip
Installing collected packages: mysql-python
  Running setup.py install for mysql-python ... error
    Complete output from command c:python27python.exe -u -c "import setuptools, tokenize;__file__=‘c:\users\admin\appdata\local\temp\pip-build-srpbqq\mysql-python\setup.py‘;f=getattr(tokenize, ‘open‘, open)(__file__);code=f.read().replace(‘

‘, ‘
‘);f.close();exec(compile(code, __file__, ‘exec‘))" install --record c:usersadminappdatalocal	emppip-6qgvvl-recordinstall-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating buildlib.win-amd64-2.7
    copying _mysql_exceptions.py -> buildlib.win-amd64-2.7
    creating buildlib.win-amd64-2.7MySQLdb
    copying MySQLdb\__init__.py -> buildlib.win-amd64-2.7MySQLdb
    copying MySQLdbconverters.py -> buildlib.win-amd64-2.7MySQLdb
    copying MySQLdbconnections.py -> buildlib.win-amd64-2.7MySQLdb
    copying MySQLdbcursors.py -> buildlib.win-amd64-2.7MySQLdb
    copying MySQLdb
elease.py -> buildlib.win-amd64-2.7MySQLdb
    copying MySQLdb	imes.py -> buildlib.win-amd64-2.7MySQLdb
    creating buildlib.win-amd64-2.7MySQLdbconstants
    copying MySQLdbconstants\__init__.py -> buildlib.win-amd64-2.7MySQLdbconstants
    copying MySQLdbconstantsCR.py -> buildlib.win-amd64-2.7MySQLdbconstants
    copying MySQLdbconstantsFIELD_TYPE.py -> buildlib.win-amd64-2.7MySQLdbconstants
    copying MySQLdbconstantsER.py -> buildlib.win-amd64-2.7MySQLdbconstants
    copying MySQLdbconstantsFLAG.py -> buildlib.win-amd64-2.7MySQLdbconstants
    copying MySQLdbconstantsREFRESH.py -> buildlib.win-amd64-2.7MySQLdbconstants
    copying MySQLdbconstantsCLIENT.py -> buildlib.win-amd64-2.7MySQLdbconstants
    running build_ext
    building ‘_mysql‘ extension
    error: Microsoft Visual C++ 9.0 is required. Get it from http://aka.ms/vcpython27

    ----------------------------------------
Command "c:python27python.exe -u -c "import setuptools, tokenize;__file__=‘c:\users\admin\appdata\local\temp\pip-build-srpbqq\mysql-python\setup.py‘;f=getattr(tokenize, ‘open‘, open)(__file__);code=f.read().replace(‘

‘, ‘
‘);f.close();exec(compile(code, __file__, ‘exec‘))" install --record c:usersadminappdatalocal	emppip-6qgvvl-recordinstall-record.txt --single-version-externally-managed --compile" failed with error code 1 in c:usersadminappdatalocal	emppip-build-srpbqqmysql-python
C:UsersadminDesktop>

根据错误提示,访问:http://aka.ms/vcpython27 

下载相应版本的VCForPython安装,再次安装mysql-python

3. 安装mysql-connector-python-2.1.7-py2.7-windows-x86-64bit.msi

https://cdn.mysql.com//Downloads/Connector-Python/mysql-connector-python-2.1.7-py2.7-windows-x86-64bit.msi

4. 安装mysql-connector-c-6.0.2-winx64.msi

https://cdn.mysql.com//Downloads/Connector-C/mysql-connector-c-6.0.2-winx64.msi 
没有安装【mysql-connector-python】与【mysql-connector-c-6.0.2】时,会报如下错误:

C:UsersadminDesktop>pip install mysql-python
Collecting mysql-python
  Using cached MySQL-python-1.2.5.zip
Installing collected packages: mysql-python
  Running setup.py install for mysql-python ... error
    Complete output from command c:python27python.exe -u -c "import setuptools, tokenize;__file__=‘c:\users\admin\appdata\local\temp\pip-build-r8dkiw\mysql-python\setup.py‘;f=getattr(tokenize, ‘open‘, open)(__file__);code=f.read().replace(‘

‘, ‘
‘);f.close();exec(compile(code, __file__, ‘exec‘))" install --record c:usersadminappdatalocal	emppip-srrfzx-recordinstall-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating buildlib.win-amd64-2.7
    copying _mysql_exceptions.py -> buildlib.win-amd64-2.7
    creating buildlib.win-amd64-2.7MySQLdb
    copying MySQLdb\__init__.py -> buildlib.win-amd64-2.7MySQLdb
    copying MySQLdbconverters.py -> buildlib.win-amd64-2.7MySQLdb
    copying MySQLdbconnections.py -> buildlib.win-amd64-2.7MySQLdb
    copying MySQLdbcursors.py -> buildlib.win-amd64-2.7MySQLdb
    copying MySQLdb
elease.py -> buildlib.win-amd64-2.7MySQLdb
    copying MySQLdb	imes.py -> buildlib.win-amd64-2.7MySQLdb
    creating buildlib.win-amd64-2.7MySQLdbconstants
    copying MySQLdbconstants\__init__.py -> buildlib.win-amd64-2.7MySQLdbconstants
    copying MySQLdbconstantsCR.py -> buildlib.win-amd64-2.7MySQLdbconstants
    copying MySQLdbconstantsFIELD_TYPE.py -> buildlib.win-amd64-2.7MySQLdbconstants
    copying MySQLdbconstantsER.py -> buildlib.win-amd64-2.7MySQLdbconstants
    copying MySQLdbconstantsFLAG.py -> buildlib.win-amd64-2.7MySQLdbconstants
    copying MySQLdbconstantsREFRESH.py -> buildlib.win-amd64-2.7MySQLdbconstants
    copying MySQLdbconstantsCLIENT.py -> buildlib.win-amd64-2.7MySQLdbconstants
    running build_ext
    building ‘_mysql‘ extension
    creating build	emp.win-amd64-2.7
    creating build	emp.win-amd64-2.7Release
    C:UsersadminAppDataLocalProgramsCommonMicrosoftVisual C++ for Python9.0VCBinamd64cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -Dversion_info=(1,2,5,‘final‘,1) -D__version__=1.2.5 "-IC:Program Files (x86)MySQLMySQL Connector C 6.0.2include" -Ic:python27include -Ic:python27PC /Tc_mysql.c /Fobuild	emp.win-amd64-2.7Release\_mysql.obj /Zl
    _mysql.c
    _mysql.c(42) : fatal error C1083: Cannot open include file: ‘config-win.h‘: No such file or directory
    error: command ‘C:\Users\admin\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe‘ failed with exit status 2

    ----------------------------------------
Command "c:python27python.exe -u -c "import setuptools, tokenize;__file__=‘c:\users\admin\appdata\local\temp\pip-build-r8dkiw\mysql-python\setup.py‘;f=getattr(tokenize, ‘open‘, open)(__file__);code=f.read().replace(‘

‘, ‘
‘);f.close();exec(compile(code, __file__, ‘exec‘))" install --record c:usersadminappdatalocal	emppip-srrfzx-recordinstall-record.txt --single-version-externally-managed --compile" failed with error code 1 in c:usersadminappdatalocal	emppip-build-r8dkiwmysql-python

5. MySQL-python-1.2.5.zip

https://pypi.python.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.zip#md5=654f75b302db6ed8dc5a898c625e030c 
注意:没有安装【mysql-connector-python】与【mysql-connector-c-6.0.2】时:此步骤会一直报错: 
> Cannot open include file: ‘config-win.h’: No such file or directory” while installing mysql-python

注意:即使已经安装了【mysql-connector-python】与【mysql-connector-c-6.0.2】,也可能会报上面的错误

原因: pypi上提供的MySQL-python包依赖32位的mysql-connector-c-6.0.2包,因为我们前面只安装了64位的版本,所有一直找不到mysql-connector-c-6.0.2而报上面的错误

  • 解决方法一: 
    去mysql官网下载32位的mysql-connector-c-6.0.2,同时安装32位版本与64位版本,再运行: 【亲测,失败,但此方法应该可以,原因本人没有深究】
pip install mysql-python
  • 1

 


  • 解决方法二: 
    下载MySQL-python-1.2.5的源码,解压并修改文件【MySQL-python-1.2.5/site.cfg】,找到如下一行的路径,将其修改成如下第二行(修改引用版本,将32位指向64位),再运行python setup.py install安装【亲测通过】 (前提:安装64位的mysql-connector-c-6.0.2,) 

 

connector = C:Program Files (x86)MySQLMySQL Connector C 6.0.2 
connector = C:Program FilesMySQLMySQL Connector C 6.0.2
# 源码安装
cd MySQL-python-1.2.5 
python setup.py install










以上是关于解决windows64位系统上安装mysql-python报错的主要内容,如果未能解决你的问题,请参考以下文章

openstack安装系列问题:window7 64位安装的virtualBox 只能选择32位的系统安装不能选择64位的系统安装

windows7 64位安装Oracle10g 32位出错解决方法

windows7 64位安装Oracle10g 32位出错解决方法

在 64 位 Windows 上安装 32 位或 64 位应用程序有啥区别?

如何检测 x64 Windows 上是不是安装了 32 位 Java,仅查看文件系统和注册表?

安装wampserver时提示丢失MSVCR110.dll(在windows server上可用)