私はcythonの初心者です。
次のディレクトリ構造があります。
cython_program/
cython_program/helloworld.py
cython_program/lib/printname.py
helloworld.py :
import lib.printname as name
def printname():
name.myname()
印刷名.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
)
私が抱えている問題はpython setup.py build_ext --inplace
、cython_program
ディレクトリで使用してプログラムをコンパイルするときです。プログラムは正常にコンパイルさprintname.c
れ、lib フォルダーにファイルが生成されます。
しかし、printname.py と helloworld.py を別のフォルダーに移動して、cython でコンパイルされたコードが実行されていることを確認します。次のエラーが表示されます ImportError: No module named lib.printname
。
モジュール(lib.printname)もメインhelloworld.py
ファイルでコンパイルしないのはなぜですか?
注: helloworld.py と printname.py の両方を同じフォルダーに保持すると、これは正常に機能します。
前もって感謝します。