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

UV Workspaces环境下出现ModuleNotFoundError:无法找到myLib模块的问题求助

UV Workspaces环境下出现ModuleNotFoundError:无法找到myLib模块的问题求助

我来帮你排查这个问题,看起来是你的内部库myLib没有被正确安装或识别,导致myApp无法导入它。咱们一步步来解决:

第一步:完善myLib的pyproject.toml配置

你的myLib目录下虽然有pyproject.toml,但大概率缺少关键的包声明配置,导致UV无法将它识别为可导入的Python包。请修改lib/myLib/pyproject.toml,确保[project]部分包含以下内容:

[project]
name = "myLib"  # 必须和你要导入的模块名完全一致
version = "0.1.0"
# 声明要包含的包,二选一即可
packages = ["myLib"]  # 手动指定包名
# 或者让工具自动查找包(适合有__init__.py的情况)
# packages = { find = {} }

第二步:用UV工作区命令重新安装依赖

之前的uv pip install .不是最适合工作区场景的命令,建议用UV的工作区同步命令来确保所有内部包被正确链接:

# 先创建并激活虚拟环境(如果还没做)
uv venv
source .venv/bin/activate  # macOS/Linux系统,Windows则是 .venv\Scripts\activate

# 同步工作区内所有依赖,自动处理内部包的关联
uv sync

uv sync会自动识别[tool.uv.workspace]里的成员,把myApp和myLib以可编辑模式安装,这样本地修改会实时生效。

第三步:正确运行myApp的脚本

不要直接用uv python run,而是在激活虚拟环境后,用以下方式运行:

# 从项目根目录运行
uv run python apps/myApp/main.py

# 或者切换到myApp目录运行
cd apps/myApp
python main.py

这样能确保脚本在正确的虚拟环境上下文里执行,找到已安装的myLib模块。

第四步:验证安装状态

激活虚拟环境后,运行pip list,查看输出里是否有myLib和myApp,并且它们的Location路径指向你本地的项目目录,这说明它们已被正确安装为可编辑包。

另外补充一点:你的根目录pyproject.toml里的依赖其实可以简化,因为已经配置了UV工作区,不需要手动写file://路径,直接写成:

dependencies = [
    "myApp",
    "myLib"
]

UV会自动从工作区成员中解析这些依赖。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 09:48:04