【发布时间】:2018-09-26 10:02:20
【问题描述】:
我有一个名为pytools 的python 包。 它包含一个基于 cython 的子模块 nms。
当我使用sudo python -H setup.py 安装根包pytools 时,
根包似乎安装正确。
但是安装并没有将编译好的nms.so复制到/usr/local/lib/python2.7/dist-packages/pytools/nms/。
而我在ipython中导入pytools时,遇到了一个错误:
ImportError: 无法导入名称 nms
如果我手动将pytools/nms/nms.so复制到/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='zhaok1206@gmail.com',
license='MIT',
packages=['pytools', 'pytools.nms'],
#packages=['pytools'],
zip_safe=False
)
和子包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()])],
)
看来这是与Attempting to build a cython extension to a python package, not creating shared object (.so) file重复的问题,但我还是想在这里发布,因为那里没有太多讨论。
谢谢!
【问题讨论】:
标签: python cython setuptools