setuptools 在我的包中看到一个子目录

setuptools see a subdir in my package

我已经根据 setuptools 为我的包创建了一个 setup.py。它工作得很好,直到我添加了一个子模块,该子模块实际上是一个内部带有 __init__.py 的子目录。现在安装正常完成,但是当我尝试导入包时,我得到

ImportError: No module named genalgs

我的包裹组织如下:

topdir/
-> setup.py
-> packg/
---> __init__.py
---> submodule.py (which imports genalgs)
---> opthermod.py
---> genalgs/
-----> __init__.py
-----> subsubmod.py
-----> othersub.py

我已经检查了目录 build/lib.linux-x86_64-2.7/packg/,除了 genalgs/ 目录之外的所有内容都在那里,所以我猜这是错误。

我使用的 setup 电话是

setup(name='pckg',
      version='0.1.0',
      description='something',
      long_description=open('README.md').read(),
      url='https://github.com/som/som.git',
      author='My name',
      author_email='mymail@mail.com',
      license='GNU GPL V3.0',
      packages=['pckg'],
      install_requires=depencies)

您需要使 setup() 调用的 packages 参数更聪明,以告诉它您想要包含的所有包:

from setuptools import setup, find_packages

setup(...
     packages=find_packages(),
...)