Python 2.7 64 位错误地将 32 位 (x86) 引用为包含文件 [英] Python 2.7 64-bit erroneously refer to 32-bit (x86) for include files
问题描述
我正在使用 64 位 Python 2.7.18 做一些遗留工作.当 PIP 调用编译器(Python 的 VC)时,它错误地引用 32 位 (x86) 源寻找包含文件,例如 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include"
.
I'm doing some legacy work with Python 2.7.18 in 64 bit. When PIP calling the compiler (VC for Python), it erroneously refer to 32-bit (x86) sources looking for include files, for example "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include"
.
对于 32 位,一切正常;对于 64 位,预编译的wheel 文件是我目前不喜欢使用的替代方法.
For 32-bit everything works all OK; for 64-bit the pre-compiled wheel file is an alternative that I prefer not to use for now.
我想知道我是否错过了将 python 及其编译器指向 64 位而不是 x86 的任何设置?
I'm wondering did I miss any setting pointing python and its compiler to 64-bit instead of x86?
或者,至少我想知道为什么 64 位不是指 64 位源的正确路径.任何指针将不胜感激.
Or, at lease I want to know why 64-bit doesn't refer to the correct path for 64-bit sources. Any pointers will be highly appreciated.
调用 Visual C++ 编译器的示例屏幕输出:
...
creating build\temp.win-amd64-2.7
creating build\temp.win-amd64-2.7\Release
C:\Users\Administrator\AppData\Local\Programs\Common\Microsoft\
Visual C++ for Python\9.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:\my\test-pip\venv-x64\include -
IC:\my\test-pip\venv-x64\PC /Tc_mysql.c /Fobuild\temp.win-amd64-
2.7\Release\_mysql.obj /Zl
...
推荐答案
作为一种解决方法,我通过调用带有 --global-option
的 pip install
命令来解决它指定包含和 lib 文件的路径.请参阅下面的示例命令:
As a workaround, I resolved it by calling pip install
command with --global-option
to specify path of include and lib files. See the example command below:
pip install MySQL-python ^
--force-reinstall --no-cache-dir ^
--global-option=build_ext ^
--global-option="-IC:\my\install\MySQL-x64\MySQL Connector C 6.0.2\include" ^
--global-option="-LC:\my\install\MySQL-x64\MySQL Connector C 6.0.2\lib\opt" ^
--verbose
在这个例子中,我在C:\my\install\MySQL-x64的自定义位置完全安装了64位版本的
.MySQL Connector C
\MySQL 连接器 C 6.0.2\
In this example, I have fully installed 64-bit version of MySQL Connector C
in customized location of C:\my\install\MySQL-x64\MySQL Connector C 6.0.2\
.
我仍然想知道为什么 pip install MySQL-python
默认总是查看目录 C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\
code>,即使您使用的是 64 位 Python 和/或已将驱动程序安装在不同的位置.
I'm still wondering why pip install MySQL-python
by default always looks into directory C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\
, even if you're using 64-bit Python and/or have installed the driver at a different location.
任何额外的输入将不胜感激.或者我可能会发布另一个问题,专门询问这一点.
Any additional inputs will be highly appreciated. Or maybe I will post another question ask specifically about the point.
这篇关于Python 2.7 64 位错误地将 32 位 (x86) 引用为包含文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!