Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Editable install of a PEP 420 namespace package shadows other packages in the same namespace

Đang mở
#775 1 bình luận 2 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
python
Lĩnh vực
build-system

Hướng nghiên cứu

Bắt đầu với các tệp pyproject.toml của hai project mẫu và meson.build của project-main, sau đó tái hiện editable install bằng các lệnh pip được liệt kê. Điều tra lý do việc import project-main khiến không tìm thấy project-dep trong company_namespace dùng chung; hoàn tất khi cả hai import đều hoạt động với cả layout src và flat.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

bug

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.

Ngôn ngữ chính
Python
Star
180
Fork
93
Merge trung bình
20 giờ 58 phút
Pull request đã merge (30 ngày)
22

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của mesonbuild/meson-python

Tất cả issue của mesonbuild/meson-python

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.