假设我有一个像这样构造的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文件,我该怎么办?