单独目录中的 Cython 编译模块
Cython compile module in separate directory
我是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 保存在同一个文件夹中,这会很好用。
提前致谢。
这是 setup.py
中的一个简单问题。
更改了这一行:
Extension("mod", ["./lib/printname.py"]),
为此:
Extension("lib.printname", ["./lib/printname.py"]),
我是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 保存在同一个文件夹中,这会很好用。
提前致谢。
这是 setup.py
中的一个简单问题。
更改了这一行:
Extension("mod", ["./lib/printname.py"]),
为此:
Extension("lib.printname", ["./lib/printname.py"]),