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

从PyPI安装RunUp报ModuleNotFoundError但可编辑安装正常如何解决

问题根因

  • 本地执行pip install --editable .可编辑安装时,setuptools会自动把项目根目录加入Python模块搜索路径,所以src目录可以被正常识别,导入不会出错。
  • 从PyPI直接安装正式包时,setuptools默认只会打包你显式声明要包含的Python包,你当前的配置既没有正确声明要打包src下的runup模块,入口脚本的导入路径也写了src.runup.cli,但正式安装后src不会被加入模块搜索路径,就会抛出找不到src模块的报错。

修复方案

推荐采用更符合Python打包规范的方案1即可:

方案1:调整配置让runup直接作为顶层包

  1. 修改setup.py配置,添加package_dir和修改packages参数,同时调整入口点的导入路径:
from setuptools import setup, find_packages

setup(
    name="RunUp",
    # 其余原有配置项保持不变
    packages=find_packages(where="src"),
    package_dir={"": "src"},
    entry_points={
        "console_scripts": [
            "runup = runup.cli:cli",
        ]
    },
)
  1. 项目内部所有涉及导入runup模块的代码,都去掉src.前缀,直接用from runup.xxx import xxx的格式即可。

方案2:保留src前缀的导入路径

如果一定要保留src前缀,需要先在src目录下新增空的__init__.py文件,再调整setup.py的packages参数:

packages=find_packages(),
# 不需要配置package_dir参数

调整完成后重新构建打包上传到PyPI即可解决该问题。

内容的提问来源于stack exchange,提问作者Just a nice guy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 01:45:09