问题描述
在Windows(带有64位Python环境)上,pip install MysqL-python
包含对Visual C++ for Python
的调用,用于编译源代码。默认情况下,此调用始终给出错误的参数,告诉编译器查看C:\Program Files (x86)\MysqL\MysqL Connector C 6.0.2\
中的包含.h
文件和.lib
文件。 C:\Program Files (x86)\
包含32位资源,而不是64位资源。
一种解决方法,我在下面的示例中指定的自定义位置中完全安装了{strong> 64位版本的MysqL Connector C
,并调用了pip install
命令使用--global-option
来指定包含和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
我的问题是:
为什么默认情况下pip install MysqL-python
总是使用64位Python查找错误的C:\Program Files (x86)\MysqL\MysqL Connector C 6.0.2\
目录?这是一个错误,还是我错过了任何设置?输入将不胜感激。
...
Created temporary directory: c:\users\admini~1\appdata\local\temp\pip-record-us8ukn
Running setup.py install for MysqL-python ... Running command 'C:\my\test-pip\venv-
x64\Scripts\python.exe' -u -c 'import sys,setuptools,tokenize; sys.argv[0] =
'"'"'c:\\users\\admini~1\\appdata\\local\\temp\\pip-install-2tppyl\\MysqL-python\\setup.py'"'"';
__file__='"'"'c:\\users\\admini~1\\appdata\\local\\temp\\pip-install-2tppyl\\MysqL-
python\\setup.py'"'"';f=getattr(tokenize,'"'"'open'"'"',open)
(__file__);code=f.read().replace('"'"'\r\n'"'"','"'"'\n'"'"');f.close();exec(compile(code,__file__,'"'"'exec'"'"'))' build_ext '-IC:\my\install\MysqL-x64\MysqL Connector C 6.0.2\include' '-
LC:\my\install\MysqL-x64\MysqL Connector C 6.0.2\lib\opt' install --record
'c:\users\admini~1\appdata\local\temp\pip-record-us8ukn\install-record.txt' --single-version-externally-
managed --compile --install-headers 'C:\my\test-pip\venv-x64\include\site\python2.7\MysqL-python'
running build_ext
building '_MysqL' extension
creating build
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\install\MysqL-x64\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
_MysqL.c
...
如上所述,它告诉编译器即使路径不存在也要引用"-IC:\Program Files (x86)\MysqL\MysqL Connector C 6.0.2\include"
。如果有兴趣,请参阅我的another post。
解决方法
我以前遇到过这类问题。要立即检查的几件事,
- 检查PATH环境变量。确保PATH中有64位python。从PATH变量中删除其他python引用。
- 开始->运行。输入
%userprofile%\AppData\Roaming\Python
。通常,Python将在此位置安装脚本。确保存在冗余。
如果上述步骤不能解决,我可以根据上述结果添加更多步骤。祝你好运。