Python setuptools:即使通过 find_packages 找到的软件包也没有安装

Python setuptools: a package not installed even when found through find_packages

我正在尝试构建具有以下结构的包:

main-dir/
    setup.py
    package/
        __init__.py
        bar/
            __init__.py
        baz/
            __init__.py
    package_foo/
        __init__.py
        boo/
            __init__.py

setup.py 中使用 find_packages() 我得到了正确的包列表,例如:

[
    'package',
    'package.bar',
    'package.baz',
    'package_foo',
    'package_foo.boo',
]

但是,当我安装包时,我只在site-packages 目录中安装了package,而package_bar 根本看不到。更奇怪的是,如果我重命名 package 目录(例如 packagee),它也不会安装。

明确一点,我正在尝试将 packagepackage_foo 安装在 site-packages 的顶层,如下所示:

import package
import package_foo

对去哪条路线有什么建议吗?

更新:我需要澄清的是,只有当我将包上传到本地 运行 的 devpi 服务器时才会发生此问题; python setup.py buildbuild/lib.linux-x86_64-2.7/ 目录中正确创建了两个包。

好的,我已经设法弄清楚了问题:原来 devpi upload 默认情况下使用它在包中找到的任何版本控制系统,并从那里构建分发。由于我的更改尚未提交,它继续从旧代码构建,其中不包括 package_foo 目录。幸运的是,提供了忽略版本控制的选项,因此正确使用的命令是:

devpi upload --no-vcs

当然,我计划为最终版本对包进行适当的版本控制,但在开发过程中仍需要构建和上传分发版。