由于属性错误导致在cython中导入日志记录模块失败

时间:2017-09-30 19:38:54

标签: python logging cython importerror

  

我在windows上运行bash上的所有内容

这就是我在做什么。 我有一个model.py文件,我正在尝试使用cython进行优化。我制作了此文件的副本,并将副本重命名为model.pyx。我在这个新的pyx文件中添加了一堆导入。新文件看起来像这样:

import pyximport
pyximport.install(pyimport=True)

import cython
cimport cython

import numpy as np
cimport numpy as np

import logging
import time

DTYPE = np.float64
ctypedef np.float64_t DTYPE_t
...

现在我使用标准的setup.py方法将其编译为.so文件,该方法为model.so提供。现在,当我尝试在新的python脚本中使用此模型时,它给出了以下错误:

  File "/usr/local/lib/python2.7/dist-packages/pyximport/pyximport.py", line 419, in load_module
    return load_module(fullname, source_path, so_path=so_path, is_package=is_package)
  File "/usr/local/lib/python2.7/dist-packages/pyximport/pyximport.py", line 233, in load_module
    exec("raise exc, None, tb", {'exc': exc, 'tb': tb})
  File "/usr/local/lib/python2.7/dist-packages/pyximport/pyximport.py", line 216, in load_module
    mod = imp.load_dynamic(name, so_path)
  File "__init__.py", line 77, in init logging.__init__
ImportError: Building module logging failed: ["AttributeError: 'NoneType' object has no attribute 'co_filename'\n"]

我不确定我哪里出错了。我在谷歌搜索了很多,但我找不到任何人面临相同或类似的错误。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

不要在.pyx文件中使用pyximport。 pyximport用于导入cython模块的Python文件,请参阅documentation of Cython