pip 如何知道编译时要包含的路径?

How pip knows what path to include when compiles?

我正在尝试使用 64 位 python 的 pip 安装 MySQL-python。为此,我想使用安装在 c:\Program Files\MySQL\ 下的 MySQL Connector C 6.0.2,但 pip 尝试在 -IC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include 中找到它:

C:\Users\navis\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python.0\VC\Bin\amd64\cl.exe 
/c /nologo /Ox /MD /W3 /GS- /DNDEBUG -Dversion_info=(1,2,5,'final',1) -D__version__=1.2.5 
"-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include" 
-IC:\Python27_64\include -Id:\projects\jop\venv_jop_print_py2_64\PC /Tc_mysql.c 
/Fobuild\temp.win-amd64-2.7\Release\_mysql.obj /Zl

如何将其指向正确的包含路径?

PS:史前史 - 有时我以前​​使用 32 位 python 和 32 位 mysql-连接器,所以这种情况对我来说就像我需要清除一些东西。

通过手动指向包含路径和库路径解决:

pip install --global-option=build_ext 
--global-option="-IC:\Program Files\MySQL\MySQL Connector C 6.0.2\include" 
--global-option="-LC:\Program Files\MySQL\MySQL Connector C 6.0.2\lib\opt"  mysql-python==1.2.5

但是为什么 pip 想要另一个版本仍然很有趣。

对于 windows 和多个 include/lib 目录使用 ';' 分隔符(分号)其他 OS 可能使用 ':'(冒号)

pip install --global-option=build_ext 
--global-option="-IC:\Program Files\MySQL\MySQL Connector C 6.0.2\include;C:\otherDir;C:\otherDir2" 
--global-option="-LC:\Program Files\MySQL\MySQL Connector C 6.0.2\lib\opt;C:\otherDir3"  mysql-python==1.2.5