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

Importing logging module in cython fails due to attribute error

I am running everything on bash on windows

这就是我正在做的。 我有一个 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"]

我不确定我哪里出错了。我在 google 上搜索了很多,但找不到任何人遇到相同或相似的错误。感谢任何帮助!

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