Câu hỏi này theo dõi The way to make namespace packages in Python và How do I create a namespace package in Python?.Gói không gian tên có phần cốt lõi?
Note PEP 420, và distribute docs, mà nhà nước:
Bạn KHÔNG phải bao gồm bất kỳ mã và dữ liệu khác trong một gói namespace của
__init__.py
. Mặc dù nó có thể hoạt động trong quá trình phát triển hoặc khi các dự án được cài đặt dưới dạng tệp.egg
, nó sẽ không hoạt động khi các dự án được cài đặt bằng các công cụ đóng gói "hệ thống" - trong trường hợp này, các tệp__init__.py
sẽ không được cài đặt.
này tất cả dường như để làm cho nó không thể có một "thư viện chính" gói với phân phối độc lập mở rộng gói con. Những gì tôi muốn là để có thể:
định nghĩa một gói thư viện lõi, được sử dụng như thế này:
import mylibrary mylibrary.some_function()
cho phép mở rộng thư viện, đóng gói và phân phối riêng biệt, được sử dụng như thế này :
import mylibrary.myextension mylibrary.myextension.some_other_function()
tôi sẽ đã dự kiến để có thể làm điều này với gói không gian tên, nhưng có vẻ như không đúng như vậy, dựa trên các câu hỏi và liên kết ở trên. Điều này có thể được thực hiện ở tất cả?
Tôi vẫn không thể tin rằng đây vẫn là trường hợp với Python hiện đại. Nó chắc chắn làm cho việc xác định các bộ phận cốt lõi để thuận tiện trong gói không gian tên của bạn khá "cứng":/ –