python - Python - 从未通过 __init__.py 导入的包中访问模块?
问题描述
我正在使用一个包,__init__.py
它只从模块中导入一个变量,但整个模块本身没有暴露。有没有办法访问该模块?
让我们看一下这种情况:
整包:
test_package/
├── __init__.py
└── test_me.py
现在内容:
__init__.py:
from .test_me import test_me
test_me.py:
STATIC = 'static'
class Test:
pass
test_me = Test()
现在,如果我导入 package test_package
。我只能访问变量test_me
,它是Test
类的一个实例。虽然我不能访问STATIC
变量,因为模块本身没有暴露。
在这种情况下,有没有办法访问test_me
模块而不仅仅是其中一个变量?
PS如果我使用sys
直接将路径附加到该包的模块,当我尝试导入它时会抛出该模块不存在的错误。
解决方案
如果将包目录添加到路径中,Python 可以导入该目录中的任何文件,就好像它本身是一个模块一样。
import sys
sys.path.extend(test_package.__path__)
import test_me
print(test_me.STATIC)
推荐阅读
- c++ - 将原始指针移动到已创建函数中的下一个字符
- kubernetes - GKE 持久卷调整大小:文件系统调整大小未完成
- javascript - 有没有办法用
使用内联 Javascript 标记
- java - 在 java 8 中使用流反转映射
- docker - 使用版本 docker 安装 chrome 驱动程序
- python - 为什么带有小部件 CheckboxSelectMultiple 的 MultipleChoiceField 无法存储到数据库中?
- sql - SQL:条件计数语句
- php - 这是在 php 中显示 json 数组的正确方法吗?
- mysql - django项目的git中分支的更改是否需要mysql中的新数据库?
- c++ - 有效的双向范围枚举映射