distutils 包 Vs py_modules 和 cython

问题描述

我想做一个 Python 包。我想使用 distutils。该软件包还使用了 cython。这是文件夹结构:

main/
    - package_ex/
        - __init__.py  (empty)
        - module_1.py
        - module_2.py
        - c_module_1.pyx
        - c_module_2.pyx
    - setup.py

我的问题是,当我执行 pip install /home/user/main 时,它会被安装,但它知道包中仅有的两个模块是 c_module_1c_module_2。因此尝试 import from package module_1 会引发 ImportError。当我在 packages=["package_ex"] 中使用 setup.py 时会发生这种情况。我找到了一种通过使用 py_modules=["package_ex","package_ex.module_1","package_ex.module_2"] 来规避此问题的方法。但我想知道为什么 packages=["package_ex"] 的通常(据我所知)命令不起作用。

这是我的 setup.py:

from distutils.core import setup
from Cython.Build import cythonize
import numpy

setup(
    name="package_ex",version="0.3",#  packages=["package_ex"],py_modules=["package_ex","package_ex.module_2"],ext_modules=cythonize("package_ex/*.pyx",compiler_directives={'language_level': "3"}),requires=['Cython','numpy','scipy','tigramite','matplotlib'],include_dirs=[numpy.get_include()])

如果您能提供任何线索,我将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)