2016-06-27 2 views
0

상대 가져 오기에 문제가 있습니다. 그러나이 경우 잘못된 점을 파악할 수 없습니다. 그것 같은 패키지의 다른 모듈에서 직접적인 상대 가져 오기처럼, 그래서 나는 이것을 디버깅하는 방법에 대한 손실에있어 보인다.이 .pyx 파일이 모듈로 인식되지 않는 이유는 무엇입니까?

은 내 프로젝트는과 같이 설정 :

. 
├── ckmeans 
│   ├── __init__.py 
│   ├── _ckmeans.pxd 
│   ├── _ckmeans_wrapper.pyx 
│   ├── _ckmeans.py 
│   ├── _evaluation.py 
│   └── _utils.py 
└── setup.py 

__init__.py의 맨 :

from ._ckmeans import ckmeans # _ckmeans.py 

그리고 _ckmeans.py의 상단에 :

from . import _ckmeans_wrapper # _ckmeans_wrapper.pyx 

그리고 상단에 _ckmeans_wrapper.pyx :

cimport _ckmeans # _ckmeans.pxd 

pip install --ignore-installed --upgrade -e .을 실행하면 모든 것이 원활하게 진행됩니다.

ImportError: cannot import name '_ckmeans_wrapper'

내가 가져 오기 __init__.py에서 문 인터프리터에서 다음 import ckmeans을 주석 때, 참으로 보인다 : 나는 인터프리터 내 테스트 스위트 또는 import ckmeans를 실행하려고 그런 때, 나는 오류 _ckmeans_wrapper 모듈이 누락되었습니다. Cython 빌드에서 무언가가 조용히 실패하고있는 것 같지만 디버깅 방법을 알지 못합니다.

다음은 setup.py입니다 :

import numpy as np 
from Cython.Build import cythonize 
from setuptools import setup, Extension 

extension = Extension(
    name='_ckmeans_wrapper', 
    sources=['ckmeans/_ckmeans_wrapper.pyx'], 
    language="c++", 
    include_dirs=[np.get_include()] 
) 

setup(
    name='ckmeans', 
    version='1.0.0', 
    packages=['ckmeans'], 
    ext_modules = cythonize(extension), 
    install_requires=['numpy', 'Cython'] 
) 

답변

0

Extensionname 인수가 잘못되었습니다. name='ckmeans._ckmeans_wrapper'이어야합니다.

+0

질문에 대한 답변으로 자신의 답변을 표시 할 수 있습니다. 그러면 질문 목록에 답변되지 않은 것으로 표시되지 않습니다. –