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

执行python setup.py install后调用runner.py报pkg_resources.ResolutionError如何解决

问题原因
  • python setup.py develop 属于开发模式,会把本地项目路径软链接到Python库目录,脚本直接指向本地bin目录下的文件,不会严格校验egg-info元数据里的脚本列表
  • 你本地残留了之前develop模式生成的旧my-runner.egg-info目录,重新执行install时setuptools会复用旧的元数据,没有把scripts配置的文件更新到元数据列表中,导致运行时找不到对应的脚本记录
  • 额外注意:当前项目根目录没有带__init__.py的Python包,find_packages()会返回空列表,属于冗余配置,不影响脚本安装但可以优化
解决方案
  1. 先清理所有旧的构建缓存和安装残留
# 卸载已安装的my-runner
pip uninstall -y my-runner
# 清理构建产物和旧的egg-info目录
rm -rf build dist *.egg-info
  1. 重新执行安装命令,建议直接用pip安装代替原生setup.py调用,兼容性更好:
pip install .
可选优化(更规范的脚本声明方式)

如果想要更跨平台、更符合setuptools规范的脚本声明,可以把scripts参数替换为entry_points配置,修改后的setup.py参考如下:

from setuptools import setup

setup(
    name='my-runner',
    version='1.0.0',
    license='private',
    author='MyName',
    author_email='myname@myemail.com',
    description='My Runner',
    # 没有实际业务包可以直接写空列表
    packages=[],
    entry_points={
        'console_scripts': [
            'runner = bin.runner:main',
            'some-other = bin.some_other_file:main'
        ]
    }
)

注意:该方式需要你的runner.py和some_other_file.py里有可调用的main函数作为执行入口,不需要给脚本加可执行权限就能正常调用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:15:04