상대 가져 오기에 문제가 있습니다. 그러나이 경우 잘못된 점을 파악할 수 없습니다. 그것 같은 패키지의 다른 모듈에서 직접적인 상대 가져 오기처럼, 그래서 나는 이것을 디버깅하는 방법에 대한 손실에있어 보인다.이 .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']
)
질문에 대한 답변으로 자신의 답변을 표시 할 수 있습니다. 그러면 질문 목록에 답변되지 않은 것으로 표시되지 않습니다. –