私はcythonの初心者です。別のディレクトリにあるCythonコンパイルモジュール
私は以下のディレクトリ構造を持っています。
cython_program/
cython_program/helloworld.py
cython_program/lib/printname.py
helloworld.py:
import lib.printname as name
def printname():
name.myname()
printname.py:
def myname():
print("this is my name")
setup.py:
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
ext_modules = [
Extension("helloworld", ["helloworld.py"]),
Extension("mod", ["./lib/printname.py"]),
]
setup(
name = 'My Program',
cmdclass = {'build_ext': build_ext},
ext_modules = ext_modules
)
私が抱えている問題は、cython_program
ディレクトリのpython setup.py build_ext --inplace
を使用して自分のプログラムをコンパイルするときです。プログラムを正常にコンパイルし、libフォルダにprintname.c
ファイルを生成します。
しかし、printname.pyとhelloworld.pyを別のフォルダに移動して、私のcythonコンパイル済みコードが実行されていることを確認してください。それは私に次のエラーImportError: No module named lib.printname
を与える。
helloworld.py
メインのファイルでもモジュール(lib.printname)をコンパイルしていないのはなぜですか?
注: helloworld.pyとprintname.pyの両方を同じフォルダに保存するとうまくいきます。
ありがとうございます。
があなた自身の答えを受け入れることを検討し... –