[英]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.