Editable install of a PEP 420 namespace package shadows other packages in the same namespace
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 35/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- python
- 领域
- build-system
调研方向
从两个示例项目的 pyproject.toml 文件和 project-main 的 meson.build 开始,然后使用列出的 pip 命令重现 editable install。调查为什么导入 project-main 会导致在共享的 company_namespace 中找不到 project-dep;当两种导入在 src 和 flat 布局下都能正常工作时即表示完成。
由索引模型根据 Issue 内容生成。
描述
When a Python package using a PEP 420 implicit namespace is installed in editable mode, it shadows/hides other packages installed in the same namespace. This makes the other packages in the shared namespace un-importable, leading to ModuleNotFoundError.
Note: It's the same for both src and flat layouts.
Steps to reproduce:
Here is a minimal example with two packages, project-dep and project-main, which both live in the company_namespace implicit namespace. project-main depends on project-dep.
project-dep:
project-dep/
├── pyproject.toml
└── company_namespace/
└── project_dep/
└── __init__.py
project-main:
project-main/
├── pyproject.toml # dependencies: ["project-dep"]
├── meson.build
└── company_namespace/
└── project_main/
├── __init__.py
└── native.c
- Setup:
# Install build requirements
pip install meson-python
# Install project-dep
pip install ./project-dep
# Install project-main as editable
pip install --no-build-isolation -e ./project-main
- Test:
python
>>> import company_namespace.project_main # This works fine
>>> import company_namespace.project_dep # ModuleNotFoundError
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
import platform
ModuleNotFoundError: No module named 'company_namespace.project_dep'
Example
A ready-to-use example is set up here: https://github.com/bastiensoucasse/mesonpy-namespace-editable.
- 主要语言
- Python
- 星标
- 180
- 派生
- 93
- 平均合并
- 20 小时 58 分钟
- 30 天内合并 PR
- 22
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
mesonbuild/meson-python 的其他 Issue
-
documentation
难度 2/5 1-3 小时 新手友好度 65/100
mesonbuild/meson-python#541 ·
维护者通常 1 天内回复
-
documentation
难度 2/5 1-3 小时 新手友好度 65/100
mesonbuild/meson-python#473 · 6 条评论 ·
维护者通常 1 天内回复
-
documentation enhancement tests
难度 5/5 一周以上 新手友好度 45/100
mesonbuild/meson-python#903 · 3 条评论 ·
维护者通常 1 天内回复
-
难度 3/5 1-2 天 新手友好度 52/100
mesonbuild/meson-python#871 · 7 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
-
pip install overrides existing build configuration可能已有人在做 @Alvaro-Kothe 于 113 天前认领。 未关闭question
难度 3/5 1-2 天 新手友好度 68/100
mesonbuild/meson-python#851 · 6 条评论 ·
维护者通常 1 天内回复
查看 mesonbuild/meson-python 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 70/100
维护者通常 1 天内回复
-
area:docs
难度 2/5 1-3 小时 新手友好度 72/100
RailtownAI/railtracks#1633 ·
维护者通常 2 天内回复
-
review-panel severity:low
难度 1/5 1 小时以内 新手友好度 85/100
kristovatlas/coin-accounting#152 ·
维护者通常 1 天内回复
-
documentation :blue_book:
难度 1/5 1 小时以内 新手友好度 88/100
PennyLaneAI/pennylane#10280 ·
维护者通常 2 天内回复
-
`pipx reinstall` prints a Python traceback when the reinstall fails可能已有人在做 @ParamTanna 今天认领。 未关闭bug
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复