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

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐