Cython with Numpy / AttributeError:' module'对象没有属性' Handler'

时间:2016-11-24 15:13:18

标签: python-3.x numpy cython

我想在Cython中使用Numpy,但遇到以下错误。即使我运行简单代码也会发生此错误,因此它应该是与导入Numpy相关的问题。

我的环境:

  • OS X Yosemite
  • Python 3.4.3

setup.py:

import numpy as np
from distutils.core import setup
from Cython.Build import cythonize

setup(
        name = 'my_code',
        ext_modules = cythonize('my_code.pyx'),
        include_path = [numpy.get_include()]
)

my_code.pyx:

cimport numpy as np

cdef int a 

在终端执行:

$ python3 setup.py build_ext --inplace
Traceback (most recent call last):
  File "/Users/***/setup.py", line 1, in <module>
    import numpy as np
  File "/usr/local/lib/python3.4/site-packages/numpy/__init__.py", line 180, in <module>
    from . import add_newdocs
  File "/usr/local/lib/python3.4/site-packages/numpy/add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "/usr/local/lib/python3.4/site-packages/numpy/lib/__init__.py", line 8, in <module>
    from .type_check import *
  File "/usr/local/lib/python3.4/site-packages/numpy/lib/type_check.py", line 11, in <module>
    import numpy.core.numeric as _nx
  File "/usr/local/lib/python3.4/site-packages/numpy/core/__init__.py", line 58, in <module>
    from numpy.testing import Tester
  File "/usr/local/lib/python3.4/site-packages/numpy/testing/__init__.py", line 10, in <module>
    from unittest import TestCase
  File "/usr/local/Cellar/python3/3.4.3/Frameworks/Python.framework/Versions/3.4/lib/python3.4/unittest/__init__.py", line 59, in <module>
    from .case import (TestCase, FunctionTestCase, SkipTest, skip, skipIf,
  File "/usr/local/Cellar/python3/3.4.3/Frameworks/Python.framework/Versions/3.4/lib/python3.4/unittest/case.py", line 253, in <module>
    class _CapturingHandler(logging.Handler):
AttributeError: 'module' object has no attribute 'Handler'

1 个答案:

答案 0 :(得分:1)

古老的问题,但我遇到了这个问题,因为我在numpy中遇到了一个非常相似的问题。

事实证明,我有一个名为logging的目录,作为我尝试运行的脚本的同级目录。因此,问题出在我的本地项目文件夹和预期找到的日志记录模块numpy之间的简单命名冲突。重命名项目logging文件夹为我解决了这个问题。

看着OP的错误消息,我怀疑他们也是这种情况。