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

使用pipx安装含入口点的Python包时遇ModuleNotFoundError问题

问题原因及解决方案

核心原因1:包搜索路径配置错误

你在[tool.setuptools.packages.find]里设置的where = ["energymonitor"]是错误的。这个参数的作用是告诉setuptools去哪里搜索Python包,而非指定要包含的包名。你的energymonitor包本身就在项目根目录下,应该让setuptools从项目根目录(.)开始搜索;否则setuptools只会去energymonitor目录下找子包,不会把energymonitor本身作为顶层包打包进去,最终导致安装后系统找不到该模块。

核心原因2:静态资源文件配置错误

[tool.setuptools.package-data]下的键必须是包名,而非目录名。你写的data = ["data/*"]无法正确关联到energymonitor包下的data目录,正确写法应该用包名energymonitor作为键。


修正后的project.toml关键配置

[build-system]
requires = ["setuptools>=68.0"]
build-backend = "setuptools.build_meta"

[project]
name = "energy-monitor"
version = "0.0.1"

...

[tool.setuptools.packages.find]
where = ["."]  # 改为从项目根目录搜索包

[tool.setuptools.package-data]
energymonitor = ["data/*"]  # 键改为包名

[project.scripts]
energy-monitor = "energymonitor.main:main"

验证步骤

  1. 保存修改后的project.toml
  2. 清理之前的构建产物:删除dist/目录(如果存在)
  3. 重新构建包:
    python -m build
    
  4. 卸载已安装的错误版本:
    pipx uninstall energy-monitor
    
  5. 重新安装修正后的包:
    pipx install path/to/energy-monitor-0.0.1.tar.gz
    
  6. 终端执行energy-monitor测试是否正常运行

你也可以先检查构建后的归档文件内容,确认energymonitor包已被正确包含:

tar tf dist/energy-monitor-0.0.1.tar.gz

输出里应该能看到energymonitor/__init__.py、energymonitor/main.py以及energymonitor/data/下的文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 22:22:23