Python"分段错误:11"在运行" import cv"或者"导入cv2"

时间:2015-02-23 08:32:51

标签: python macos python-2.7 opencv macports

我按照these instructions,使用macports安装了numpy和opencv,但是当我尝试import cvimport 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
>>>

作为超级用户,一切似乎都运行良好。这怎么可能?

5 个答案:

答案 0 :(得分:2)

如果仔细查看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,可能会解释您所获得的行为。

答案 1 :(得分:1)

在OSX 10.11上遇到此问题并在各种情况下拖网查看此问题的几个案例后,我意识到这个问题主要是由于以下独立原因而发生的:

  1. 冲突的python版本(多个蟒蛇);解决方案 - 卸载其中一个,获得与opencv兼容的那个("Segmentation fault" during "import cv" on Mac OS
  2. opencv版本问题;解决方案 - 为您提供合适的版本Python opencv feature detector causes segmentation fault
  3. 你的numpy版本的问题;解决方案 - 再次卸载并安装numpy(OpenCV - cannot find module cv2
  4. 我尝试了所有3,但是3号解决了我的问题。

答案 2 :(得分:0)

Using

cv2.ocl.setUseOpenCL(False)

at the beginning of the code solved the problem for me.

答案 3 :(得分:0)

我遇到了类似的问题。

FragmentTransaction

但是,如果我先导入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 cv2
[1]    41233 segmentation fault  python

答案 4 :(得分:0)

对我来说,解决方案很简单

sudo apt install python3-opencv

然后安装pip opencv软件包

sudo pip3 install opencv-python 

sudo pip install opencv-python 

注意:这是因为我启动了一个新的Aws实例。