WSL环境下使用uv可编辑安装自定义Python包后出现ModuleNotFoundError的问题求助
WSL环境下使用uv可编辑安装自定义Python包后出现ModuleNotFoundError的问题求助
我现在遇到了一个特别头疼的问题,在WSL环境里用uv管理Python包,可编辑模式安装自己的项目后,不管是运行安装好的脚本还是直接执行代码,都会报ModuleNotFoundError。明明安装过程没报错,包也在依赖列表里,实在摸不着头脑,来求助大家!
我的环境情况
- 运行环境:WSL
- 包管理工具:uv
- Python版本:3.12
- 已激活虚拟环境,项目以可编辑模式安装
项目配置与结构
pyproject.toml核心配置
我的pyproject.toml是标准结构,其中build-system和脚本配置如下:
[build-system] requires = ["setuptools >= 61.0"] build-backend = "setuptools.build_meta" [project] ... [project.scripts] run-module= "my_module.main:start"
项目目录结构
所有子目录都包含自己的__init__.py文件,具体结构如下:
my_module/ ├── pyproject.toml ├── ... ├── my_module/ ├── __init__.py └── main.py └── models/ ├── __init__.py └── search.py
代码导入方式
在main.py里我用的是绝对导入:
from my_module.models.search import SearchWithFilter
安装过程
我用这条命令完成可编辑安装:
uv pip install -e .
安装全程没有报错,执行uv pip list也能看到自己的包在列表里,状态为可编辑:
Package Version Editable project location ------------------ ---------- ---------------------------- annotated-types 0.7.0 beautifulsoup4 4.12.3 certifi 2024.12.14 charset-normalizer 3.4.1 idna 3.10 pydantic 2.10.4 pydantic-core 2.27.2 requests 2.32.3 soupsieve 2.6 my_module 0.0.1 /home/xxx/projects/my_module typing-extensions 4.12.2 urllib3 2.3.0
遇到的错误
但是不管是运行安装好的脚本run-module,还是直接执行python3 main.py,都会触发以下错误:
Traceback (most recent call last): File "/home/xxx/projects/my_module/.venv/bin/run-module", line 5, in <module> from my_module.main import start ModuleNotFoundError: No module named 'my_module'
我已经尝试过的排查方法
- 完全重装了WSL环境
- 重新安装了uv工具
- 尝试将项目结构改成
./src/my_module的标准布局,结果还是报同样的错误
而且这个项目模板在我工作电脑上是完全正常运行的,只有WSL环境出问题,实在找不到问题所在了,有没有大佬能帮我分析一下?
备注:内容来源于stack exchange,提问作者Hyn
相关产品推荐
相关产品推荐

