【问题标题】:Python setuptools: a package not installed even when found through find_packagesPython setuptools:即使通过 find_packages 找到的包也没有安装
【发布时间】:2015-03-19 14:22:19
【问题描述】:

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

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/ 目录中正确创建了这两个包。

【问题讨论】:

    标签: python setuptools distutils


    【解决方案1】:

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

    devpi upload --no-vcs
    

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

    【讨论】:

      猜你喜欢
      • 2015-03-01
      • 1970-01-01
      • 2023-03-31
      • 2013-10-24
      • 1970-01-01
      • 1970-01-01
      • 2015-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多