I次のパッケージ構造を有する:PythonパッケージCythonモジュール
+ repo/
+ setup.py
+ package/
+ module1/
+ submodule1.py
+ submodule2.pyx
+ module2/
+ submodule3.py
私のようなものでsubmodule1.pyからsubmodule2.pyxを使用したい:
import submodule2
が、私は絶対にないアイデアを持っていませんこれを行う方法。私は私のsetup.pyに次の行を追加しようとしました:
from distutils.core import setup
from setuptools import setup
from Cython.Distutils import build_ext
ext_modules = cythonize(Extension(
"zindex",
sources=["ndmg/graph/zindex.pyx"],
language="c",
))
for e in ext_modules:
e.pyrex_directives = {"boundscheck": False}
setup(
name='ndmg',
ext_modules = ext_modules,
packages=[
'package',
'package.module1',
....
)
しかし失敗しました。私が見つけることができるチュートリアルはすべて非常に単純化された例を持っていたので、残りのパッケージがちょうど普通のPythonコードであるときに私のPythonパッケージにCythonモジュールを含める方法がわかりません。誰かが私が従うことができる良い例はありますか、誰かが私が間違っていることを教えてもらえますか?
ありがとうございます!
'python setup.py build_ext --inplace'を実行している間、OS、コンパイラ、エラー(もしあれば)/出力に関する情報を提供してください。 linuxと仮定すると、あなたのディレクトリツリーのどこかにsubmodule2.soがあるかどうか確認してください。 – darked89
より正確に言うと、コンパイルされたモジュール名は次のようになります。* .cpython-36m-x86_64-linux-gnu.so – darked89
'から試しましたか? submodule1.pyのimport submodule2'? –