簡體   English   中英

為什么 64 位 `pip install MySQL-python` 指的是 `C:\\Program Files (x86)\\`?

[英]Why 64-bit `pip install MySQL-python` refers to `C:\Program Files (x86)\`?

在 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 位。

作為一種解決方法,我在下面示例中給出的自定義位置完全安裝了64 位版本的MySQL Connector C ,並使用--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

我的問題是:

為什么pip install MySQL-python默認總是在C:\\Program Files (x86)\\MySQL\\MySQL Connector C 6.0.2\\ with 64-bit Python 中查找錯誤的目錄? 這是一個錯誤,還是我錯過了任何設置? 輸入將受到高度贊賞。

與編譯器調用相關的部分屏幕輸出:

...
  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"即使路徑不存在。 如果感興趣,也請參考我的另一篇文章

我之前遇到過這樣的問題。 有幾件事要立即檢查,

  1. 檢查 PATH 環境變量。 確保 64 位 python 在 PATH 中。 從 PATH 變量中刪除其他 python 引用。
  2. 開始 -> 運行。 輸入%userprofile%\\AppData\\Roaming\\Python 通常 Python 會在這個位置安裝腳本。 確保有冗余。

如果上述步驟沒有解決,我可以根據上述結果添加更多步驟。 祝你好運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM