致命错误:安装 opencv 时找不到“Python.h”文件
Posted
技术标签:
【中文标题】致命错误:安装 opencv 时找不到“Python.h”文件【英文标题】:fatal error: 'Python.h' file not found while installing opencv 【发布时间】:2016-06-17 03:38:52 【问题描述】:我正在尝试在我的 Mac OS X 10.10.5 上为 Python 安装 opencv 3.1 我正在按照此处概述的步骤进行操作 - http://www.pyimagesearch.com/2015/06/15/install-opencv-3-0-and-python-2-7-on-osx/
当我在所有设置后实际尝试安装 opencv 时,我收到以下错误:
.../opencv/modules/python/src2/cv2.cpp:6:10: fatal error:
'Python.h' file not found
#include <Python.h>
^
我查看了 ***,发现大多数面临此问题的人都在使用 Anaconda,而我的情况并非如此。如果有人能指出我正确的方向来解决这个问题,那就太好了。
谢谢,
【问题讨论】:
搜索如何在OSX上安装python-dev
。
全部完成了 - XCode 命令行、Brew、python、virtualenv。还要在 bash_profile 中设置 PATH。我错过了什么吗?
你需要设置 C_INCLUDE_PATH 试试这个 -> ***.com/a/47956013/4502723
【参考方案1】:
这个问题似乎是关于默认的Python2集成到macOS中的,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
的版本和位置。它期待它。
【讨论】:
如何添加到cmake?我仍然无法构建 @ShravyaBoggarapu 抱歉,这篇文章是很久以前的了。我认为您应该研究 CMakeFindPython
。例如here.【参考方案2】:
我通过安装 python2.7 解决了我的问题,显然它是使用 python 3.4 编译的。所以我做了以下事情:
brew install python@2
brew link python@2
【讨论】:
【参考方案3】:运行
brew install python
或
brew upgrade python
完成此操作后,您要安装的所有内容(在我的情况下为 vim)都会成功。
【讨论】:
【参考方案4】:我的方法不同,但基本上就是 Jonathan Lau 提到的。
我使用了 pyenv 和 conda 并更改了导致问题的 python 库路径。 为了解决它,这就是我所做的
-
注释掉 .bashrc 中 pyenv 的 PATH 设置
重新启动终端并 brew install 任何你需要的东西(在我的例子中是 vim)
将 .bashrc 改回来
【讨论】:
【参考方案5】:我在 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 ..
【讨论】:
谢谢,它也适用于我的虚拟环境由 pyenv 提供的情况【参考方案6】:如果在制作 *.cpp 文件之一时找不到 Python.h,请设置以下 ENV 变量
export CPLUS_INCLUDE_PATH=/System/Library/Frameworks/Python.framework/Headers
请检查系统中是否存在该路径并确保 Python.h 存在。
【讨论】:
【参考方案7】:是的,修改 cmake 命令中使用的路径。它们必须存在于您的文件系统中。就我而言,我已经安装了 python 3.5,原始文档使用的是 python 3.4。
【讨论】:
【参考方案8】:首先,您必须检查并确保您已使用 brew 安装了 python,并且您正在使用系统 python lib 二进制文件。博客中提到了这一点。
其次,cmake 命令中的 python 版本必须与 brew 为您安装的版本相匹配。你应该仔细检查一下。
【讨论】:
【参考方案9】:我正在使用El Capitan
,但我认为 Python 标头的路径应该没有太大区别。我在以下位置找到我的:
/System/Library/Frameworks/Python.framework/Headers/Python.h
您可以尝试运行:
export C_INCLUDE_PATH=/System/Library/Frameworks/Python.framework/Headers
然后尝试其余步骤。
【讨论】:
以上是关于致命错误:安装 opencv 时找不到“Python.h”文件的主要内容,如果未能解决你的问题,请参考以下文章
致命错误:未捕获的错误:在 magento 2 中刷新缓存时找不到类“DOMDocument”
MATLAB + Mex + OpenCV:链接和编译正确,但在运行时找不到库
在 VS 2008 上启动 OpenCV 2.4.6 时出现致命错误,找不到文件