You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Python的setup.py,将inputs、logger打包到app目录中?

解决方案

要实现将inputs和logger目录打包后作为app的子目录,你需要调整setup.py中的包映射配置,具体步骤如下:

1. 确保inputs和logger是合法的Python包

在项目根目录的inputs和logger文件夹中添加空的__init__.py文件,这样setuptools才会将它们识别为可打包的Python包。

2. 修改setup.py配置

调整package_dir参数,将外部的inputs和logger目录映射为app的子包,同时更新packages列表包含这些映射后的子包:

from setuptools import setup
import os

setup(
    name='app',
    version=os.environ['BUILD_NUMBER'],
    description='sol',
    author='codebot',
    # 配置包路径映射:将项目根目录的inputs/logger映射为app的子包
    package_dir={
        'app.inputs': 'inputs',
        'app.logger': 'logger'
    },
    # 指定要打包的包,包含app本身及其子包,以及映射后的app.inputs和app.logger
    packages=[
        'app',
        'app.loaders',
        'app.data',
        'app.config',
        'app.inputs',
        'app.logger'
    ],
    entry_points={
        'group_1': 'run=app.__main__:main'
    }
)

原理说明

  • 原配置中packages=['inputs', 'logger']会将这两个目录作为顶级包安装到site-packages根目录,而非app的子目录,所以你看不到它们在app文件夹下。
  • 通过package_dir映射,我们告诉setuptools:当寻找app.inputs这个子包时,去项目根目录的inputs文件夹读取内容;同理处理app.logger。这样打包安装后,inputs和logger就会作为app的子目录存在。

内容的提问来源于stack exchange,提问作者codebot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 10:05:03