4

私は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 --inplacecython_programディレクトリで使用してプログラムをコンパイルするときです。プログラムは正常にコンパイルさprintname.cれ、lib フォルダーにファイルが生成されます。

しかし、printname.py と helloworld.py を別のフォルダーに移動して、cython でコンパイルされたコードが実行されていることを確認します。次のエラーが表示されます ImportError: No module named lib.printname

モジュール(lib.printname)もメインhelloworld.pyファイルでコンパイルしないのはなぜですか?

注: helloworld.py と printname.py の両方を同じフォルダーに保持すると、これは正常に機能します。

前もって感謝します。

4

1 に答える 1