![](/img/trans.png)
[英]fatal error: 'Python/Python.h' file not found while installing couchapp
[英]fatal error: 'Python.h' file not found while installing opencv
我正在嘗試在我的 Mac OS X 10.10.5 上為 Python 安裝 opencv 3.1 我正在按照此處概述的步驟進行操作 - http://www.pyimagesearch.com/2015/06/15/install-opencv-3- 0-和-python-2.7-on-osx/
當我在完成所有設置后實際嘗試安裝 opencv 時,出現以下錯誤:
.../opencv/modules/python/src2/cv2.cpp:6:10: fatal error:
'Python.h' file not found
#include <Python.h>
^
我環顧了 StackOverflow,發現大多數面臨此問題的人都在使用 Anaconda,而我的情況並非如此。 如果有人能指出正確的方向來解決這個問題,那就太好了。
謝謝,
如果在制作 *.cpp 文件之一時未找到 Python.h,請設置以下 ENV 變量
export CPLUS_INCLUDE_PATH=/System/Library/Frameworks/Python.framework/Headers
請檢查系統中路徑是否存在,並確保存在 Python.h。
我正在使用El Capitan
但我認為 Python 標頭的路徑應該沒有太大區別。 我在以下位置找到我的:
/System/Library/Frameworks/Python.framework/Headers/Python.h
你可以嘗試運行:
export C_INCLUDE_PATH=/System/Library/Frameworks/Python.framework/Headers
然后嘗試剩余的步驟。
跑
brew install python
或者
brew upgrade python
執行此操作后,您要安裝的所有內容(在我的情況下為 vim)都會成功。
我在 OSX 上遇到了同樣的問題,通過設置 CPLUS_INCLUDE_PATH 環境變量來解決。 還在可能有復雜事情的 anaconda 環境中構建。
export CPLUS_INCLUDE_PATH=~/anaconda/envs/py27/include/python2.7
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=~/anaconda/envs/py27/share \
-D PYTHON2_PACKAGES_PATH=~/anaconda/envs/py27/lib/python2.7/site-packages \
-D PYTHON2_LIBRARY=~/anaconda/envs/py27/bin/python \
-D PYTHON_EXECUTABLE=~/anaconda/envs/py27/bin/python \
-D PYTHON2_INCLUDE_DIR=~/anaconda/envs/py27/include/python2.7 \
-D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules ..
這個問題似乎是關於集成到macOS的默認Python2,其Python.h
頭文件在地址中:
/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/Python.h
Python 版本可能會根據您使用的 macOS 版本而變化。 但是,如果您使用 Hombrew 安裝了 Python3,那么您可能應該在以下路徑中找到頭文件:
/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/include/python3.7m/Python.h
根據您的brew
為您安裝的 Python3 版本。 同樣,在 mac 上使用 Python 有很多其他的可能性(例如,anaconda、intel python、pypy,...你能想到的)。 找到特定Python.h
路徑的最佳方法是使用以下命令搜索整個設備:
sudo find / -iname "Python.h"
然后你可以運行命令
export C_INCLUDE_PATH=<path/to/the/specific/header/file>
在您的 bash 終端中,或將其添加到~/.bash_profile
以使其永久存在。
您可能還想檢查 MakeFile(或該軟件使用的其他工具,例如 cmake...)以查看它期望的Python.h
版本以及在哪些位置。 它正在期待它。
首先,您必須檢查並確保您已經使用 brew 安裝了 python 並且您正在使用系統 python lib 二進制文件。 這是博客里提到的。
其次,cmake 命令中的 python 版本必須與 brew 為您安裝的版本相匹配。 你應該仔細檢查一下。
是的,修改 cmake 命令中使用的路徑。 它們必須存在於您的文件系統中。 就我而言,我安裝了 python 3.5,原始文檔使用 python 3.4。
我的方法不同,但基本上就是Jonathan Lau 提到的。
我使用了 pyenv 和 conda 並更改了導致問題的 python lib 路徑。 為了解決它,這就是我所做的
我通過安裝 python2.7 解決了我的問題,顯然它是使用 python 3.4 編譯的。 所以我做了以下事情:
brew install python@2
brew link python@2
我在 mac os 12.2.1 上解決了這個問題,如下所示: export CPPFLAGS="-I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7"
然后pip install...
對我來說,它在嘗試安裝 pycurl 之前升級了pycurl
:
pip install --upgrade pip
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.