我有一个名为的 python 包pytools。
它包含一个基于 cython 的子模块nms.
当我安装根包 pytools 时sudo python -H setup.py
,
根包似乎已正确安装。
但安装时没有复制编译nms.so
to /usr/local/lib/python2.7/dist-packages/pytools/nms/
.
当我在 ipython 中导入 pytools 时,遇到错误:
导入错误:无法导入名称 nms
如果我手动复制pytools/nms/nms.so
to /usr/local/lib/python2.7/dist-packages/pytools/nms/
, 问题已经解决了。
这是我的setup.py
根包的:
import os
import numpy
from distutils.core import setup, Extension
from Cython.Build import cythonize
exec(open('pytools/version.py').read())
exts = [Extension(name='nms',
sources=["_nms.pyx", "nms.c"],
include_dirs=[numpy.get_include()])
]
setup(name='pytools',
version=__version__,
description='python tools',
url='http://kaiz.xyz/pytools',
author_email='[email protected]',
license='MIT',
packages=['pytools', 'pytools.nms'],
#packages=['pytools'],
zip_safe=False
)
And setup.py
子包的nms
:
from distutils.core import setup, Extension
import numpy
from Cython.Distutils import build_ext
setup(
cmdclass={'build_ext': build_ext},
ext_modules=[Extension("nms",
sources=["_nms.pyx", "nms.c"],
include_dirs=[numpy.get_include()])],
)
看来这是一个重复的问题尝试构建 python 包的 cython 扩展,而不是创建共享对象(.so)文件,但我还是想把它贴在这里,因为那里没有太多讨论。
谢谢你!