【发布时间】:2015-08-06 05:35:51
【问题描述】:
假设我有一个结构如下的 python 包:
foo/
__init__.py
setup.py
bar/
__init__.py
bar.pyx
而setup.py的内容是
from distutils.core import setup
from Cython.Build import cythonize
import numpy as np
setup(
ext_modules=cythonize("bar/bar.pyx"),
include_dirs=[np.get_include()]
)
那我就跑
python setup.py build_ext --inplace
因为我需要将编译后的文件bar.so 准确地放在bar/ 中。但是前面的命令在bar下创建了一个新目录foo/bar/,然后把bar.so放在那里,比如说,
foo/
__init__.py
setup.py
bar/
__init__.py
bar.pyx
foo/
bar/
bar.so
而我需要的是
foo/
__init__.py
setup.py
bar/
__init__.py
bar.pyx
bar.so
这些烦人的事情发生在我把foo和bar变成一个包之后。如果我删除foo/__init__.py 和bar/__init__.py,那么bar.so 将出现在foo/ 中,但仍然不是foo/bar/。我已阅读手册,但没有找到解决此问题的选项。
如果我要求bar.so 出现在正确的位置,同时保留两个__init__.py 文件,我该怎么办?
【问题讨论】:
标签: python python-2.7 cython setup.py