Python "Segmentation fault: 11" 当 运行 "import cv" 或 "import cv2"
Python "Segmentation fault: 11" when running "import cv" or "import cv2"
我已经按照 these instructions, 使用 macports 安装了 numpy 和 opencv,但是当我尝试 import cv
或 import cv2
时,我只是遇到段错误,我不知道为什么。
有什么建议吗?
$ python
Python 2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv
Segmentation fault: 11
$ python
Python 2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Segmentation fault: 11
抱歉,细节太少了,但这是一台新电脑,我为此安装了 macports,这是我安装 macports 的唯一东西,所以我不知道为什么这不是'没有工作。
编辑:现在我更困惑了。
查看崩溃报告我发现了这个:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000
所以,作为一个盲人,我 运行 python 作为超级用户:
$ sudo python
Python 2.7.9 (default, Dec 13 2014, 15:13:49)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv
>>>
作为超级用户,一切似乎 运行 都很好。这怎么可能?
如果您仔细查看 python 命令的信息消息,您会发现不同之处。
来自越野车:
$ python
Python 2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Segmentation fault: 11
来自工作中的:
$ sudo python
Python 2.7.9 (default, Dec 13 2014, 15:13:49)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv
>>>
您的计算机上有两个不同版本的 Python,这可能解释了您的行为。
在 OSX 10.11 上遇到这个问题并在各种情况下浏览了几个这个问题的案例后,我意识到这个问题的发生主要是由于以下独立原因:
- 冲突的 python 版本(超过一个 python);解决方案 - 卸载其中之一,获取与 opencv 兼容的那个 ("Segmentation fault" during "import cv" on Mac OS)
- opencv版本问题;解决方案 - 获取适合您的版本 Python opencv feature detector causes segmentation fault
- 你的 numpy 版本有问题;解决方案 - 卸载并重新安装 numpy (OpenCV - cannot find module cv2)
我尝试了所有 3 个,但第 3 个解决了我的问题。
使用
cv2.ocl.setUseOpenCL(False)
在代码开头为我解决了问题。
我遇到了类似的问题。
➜ ~ ✗ python
Python 3.6.0 |Continuum Analytics, Inc.| (default, Dec 23 2016, 13:19:00)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
[1] 41233 segmentation fault python
但如果我先导入 numpy,问题就会消失。
➜ ~ ✗ python
Python 3.6.0 |Continuum Analytics, Inc.| (default, Dec 23 2016, 13:19:00)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> import cv2
>>>
对我来说,解决方案很简单
sudo apt install python3-opencv
然后安装pip opencv包
sudo pip3 install opencv-python
或
sudo pip install opencv-python
注意:这是因为我启动了一个新的 Aws 实例。
我已经按照 these instructions, 使用 macports 安装了 numpy 和 opencv,但是当我尝试 import cv
或 import cv2
时,我只是遇到段错误,我不知道为什么。
有什么建议吗?
$ python
Python 2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv
Segmentation fault: 11
$ python
Python 2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Segmentation fault: 11
抱歉,细节太少了,但这是一台新电脑,我为此安装了 macports,这是我安装 macports 的唯一东西,所以我不知道为什么这不是'没有工作。
编辑:现在我更困惑了。
查看崩溃报告我发现了这个:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000
所以,作为一个盲人,我 运行 python 作为超级用户:
$ sudo python
Python 2.7.9 (default, Dec 13 2014, 15:13:49)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv
>>>
作为超级用户,一切似乎 运行 都很好。这怎么可能?
如果您仔细查看 python 命令的信息消息,您会发现不同之处。
来自越野车:
$ python
Python 2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Segmentation fault: 11
来自工作中的:
$ sudo python
Python 2.7.9 (default, Dec 13 2014, 15:13:49)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv
>>>
您的计算机上有两个不同版本的 Python,这可能解释了您的行为。
在 OSX 10.11 上遇到这个问题并在各种情况下浏览了几个这个问题的案例后,我意识到这个问题的发生主要是由于以下独立原因:
- 冲突的 python 版本(超过一个 python);解决方案 - 卸载其中之一,获取与 opencv 兼容的那个 ("Segmentation fault" during "import cv" on Mac OS)
- opencv版本问题;解决方案 - 获取适合您的版本 Python opencv feature detector causes segmentation fault
- 你的 numpy 版本有问题;解决方案 - 卸载并重新安装 numpy (OpenCV - cannot find module cv2)
我尝试了所有 3 个,但第 3 个解决了我的问题。
使用
cv2.ocl.setUseOpenCL(False)
在代码开头为我解决了问题。
我遇到了类似的问题。
➜ ~ ✗ python
Python 3.6.0 |Continuum Analytics, Inc.| (default, Dec 23 2016, 13:19:00)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
[1] 41233 segmentation fault python
但如果我先导入 numpy,问题就会消失。
➜ ~ ✗ python
Python 3.6.0 |Continuum Analytics, Inc.| (default, Dec 23 2016, 13:19:00)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> import cv2
>>>
对我来说,解决方案很简单
sudo apt install python3-opencv
然后安装pip opencv包
sudo pip3 install opencv-python
或
sudo pip install opencv-python
注意:这是因为我启动了一个新的 Aws 实例。