[英]How to create namespace packages in Python?
我有一個 Python 3 項目,其結構如下:
project/
|
+--root/
|
+--__init__.py
|
+--sub/
|
+--__init__.py
|
+--actualcode.py
我想使用“命名空間包”,以便我的庫與單獨項目中的其他相關庫共享一個公共命名空間。 導入語句應如下所示:
from root.sub.actualcode import something
根文件夾中的__init__.py
文件包含以下用於創建命名空間 package 的語句:
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)
但是當我導入root.sub
時我無法引用代碼。 它僅在我編寫時才有效:
from sub.actualcode import something # doesn't work with "root.sub..."!
我應該怎么做才能使用root
作為命名空間?
我剛剛嘗試了您的示例,但它似乎像您希望的那樣工作:
>>> from root.sub.actualcode import foo
>>> foo()
Bar!
我從包含root
文件夾的目錄中運行了 Python 解釋器。 我創建了空的__init__.py
文件,我的actualcode.py
看起來像這樣:
#!/bin/python3
def foo():
print("Bar!")
不同之處在於我的__init__.py
文件是空的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.