2017-09-30 11 views
0

I am running everything on bash on windows속성 오류로 인해 cython에서 로깅 모듈 가져 오기가 실패했습니다.

여기가 내가하고있는 일이다. cython을 사용하여 최적화하려는 파일이 model.py입니다. 나는이 파일의 복사본을 만들고 복사본을 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 
... 

지금 내가 나에게 model.so을 제공하는 표준 setup.py 방법을 사용하는 .so 파일이 컴파일.

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"] 

내가 잘못 가고 어디 잘 모르겠어요 : 나는 새로운 파이썬 스크립트에서이 모델을 사용하려고하면 지금은 나에게 다음과 같은 오류를 제공합니다. 나는 구글에서 많은 검색을했지만 같은 또는 비슷한 오류를 마주 누군가를 찾을 수 없습니다. 어떤 도움을 주셔서 감사합니다!

+0

'model.py' 파일과'model.pyx' 파일이 같은 디렉토리에 있다면 문제가있을 것입니다. 디렉토리에서'model.py' 파일의 이름을 변경하거나 제거하고'.pyx' 파일에서 pyximport를 사용하지 마십시오. pyximport는 cython 모듈을 가져 오는 Python 파일에서 수행됩니다. 어쨌든'setup.py' 파일을 사용하는 것이 좋습니다. –

+0

안녕하세요, 제 질문에서이 점을 잊어 버렸습니다. 나는 폴더에서'model.py'를'model_org.py'로 이름을 바꿨다. 그러나 cython 파일에서'pyximport'를 제거하면 오류가 어떻게 든 고쳐졌습니다. 감사! –

답변

0

pyximport를 .pyx 파일에 사용하지 마십시오. pyximport는 cython 모듈을 가져 오는 Python 파일에서 사용됩니다 (documentation of Cython 참조).