【问题标题】:Python 2.7 64-bit erroneously refer to 32-bit (x86) for include filesPython 2.7 64 位错误地引用 32 位 (x86) 的包含文件
【发布时间】:2020-10-02 02:47:24
【问题描述】:

我正在使用 64 位的 Python 2.7.18 做一些遗留工作。当 PIP 调用编译器(用于 Python 的 VC)时,它会错误地引用 32 位 (x86) 源来查找包含文件,例如 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include"。

对于 32 位,一切正常;对于 64 位,预编译的 wheel 文件是我暂时不喜欢使用的替代方案。

我想知道我是否错过了任何将 python 及其编译器指向 64 位而不是 x86 的设置?

或者,至少我想知道为什么 64 位不指代 64 位源的正确路径。任何指针将不胜感激。

调用 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
...

【问题讨论】:

    标签: python-2.7 visual-c++ pip 64-bit


    【解决方案1】:

    作为一种解决方法,我通过使用--global-option 调用pip install 命令来指定包含和lib 文件的路径来解决它。请参阅下面的示例命令:

    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\MySQL Connector C 6.0.2\的自定义位置完全安装了64位版本的MySQL Connector C。

    我仍然想知道为什么默认情况下pip install MySQL-python 总是查看目录C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\,即使您使用的是 64 位 Python 和/或已将驱动程序安装在不同的位置。

    我们将不胜感激任何额外的投入。或者,也许我会发布另一个问题,专门询问这一点。

    【讨论】:

      猜你喜欢
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      • 2014-08-19
      • 1970-01-01
      • 1970-01-01
      • 2018-03-07
      • 2018-12-29
      • 2018-01-29
      相关资源
      最近更新 更多