패키지에서 사용할 수 있지만 달걀 패키지로 설치하면 cython 기반 모듈을 가져올 수 없습니다.패키지에서 계란의 cython 라이브러리를 가져올 수 없습니다.
나는 다음과 같은 패키지 구조를
src/
├── mypkg/
│ ├── __init__.py
│ ├── myfile.py
├── cython/
│ ├── fastcode.pyx
setup.py
모듈 myfile.py
수입 import fastcode
있습니다. setup.py
에서, 나는 python setup.py install
실행하는 경우의 지시에 따라
setup(
name='mypkg',
version='0.1',
packages=find_packages(where="src"),
package_dir={'':'src'},
cmdclass={'build_ext': build_ext},
ext_modules=df_ext_modules,
)
나는 또한 setup.cfg
에있는,
[build_ext]
build-lib=src/mypkg
이의 사이 썬 코드가 mypkg
폴더에 (리눅스 또는 fastcode.so
) fastcode.pyd
를 컴파일하여 생성됩니다있다 설정 파일.
이제 mypkg
폴더로 이동하여 python
을 실행하면 안전하게 import mypkg.myfile
을 할 수 있습니다. 그러나 다른 일부 폴더 (예 : 설치된 .egg
파일이 사용됨)에서 Python을 실행하면 오류 ImportError: No module named fastcode
가 표시됩니다.
setup.py
에
package_data={
'mypkg': ['*.pyd', '*.so']
},
를 추가하려고,이 (압축 해제 된 버전을 탐구하여) 계란 파일에 fastcode.pyd
을 추가,하지만 여전히 수입 작동하지 않습니다.