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

上传Python包至PyPi时console_scripts配置报错及资源文件打包问题

PyPI打包问题修复方案

1. 修复语法与入口配置报错

  • 首先修正setup.py中readme函数的缩进错误,同时指定文件编码避免跨系统读取乱码:
def readme():
    with open('README.md', encoding='utf-8') as f:
        return f.read()
  • 其次修复console_scripts配置错误:console_scripts的入口规则为「命令名=包名.模块名:入口可调用对象」,你当前用.分隔模块和入口函数,会被错误识别为子包路径。如果orig/happy.py中的入口执行函数名为world,将配置行修改为:
'blah=orig.happy:world'
  • 额外确认:orig目录下需要存在空的__init__.py文件,否则setuptools无法将其识别为Python包,会触发打包失败。

2. 配置world.h5资源打包与加载

2.1 打包规则配置

你已经在setup中添加了include_package_data=True参数,接下来在项目根目录(与setup.py同级)新建MANIFEST.in文件,写入以下内容:

include orig/world.h5

该配置会将orig目录下的world.h5文件纳入发布包的打包列表。

2.2 资源加载逻辑修正

不要使用相对路径(如./world.h5)直接读取资源,包安装后的运行路径会发生变化,相对路径会找不到文件。请使用Python标准库importlib.resources读取包内资源,示例代码如下(适用于Python 3.7+):

from importlib import resources
import h5py

# 读取orig包下的world.h5资源
with resources.path("orig", "world.h5") as h5_file_path:
    with h5py.File(h5_file_path, "r") as f:
        # 此处编写你的文件读取逻辑
        ...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:36:02