[英]Python 3: How do I import __init__.py from a module in its package?
我使用的是Python 3.7。 我創建了一個foo模塊,它具有以下文件夾布局:
foo/
__init__.py
我將foo軟件包的所有代碼都放在__init__.py文件中。 我可以正常運行其他腳本中的import foo
。
稍后,我想向該軟件包添加一個util.py文件。 文件夾布局變為:
foo/
__init__.py
util.py
我的問題是:在util.py中 ,我想訪問__init__.py中定義的類,函數等。 如何從util.py文件中“導入” __init__.py ? 這有可能嗎? 如果必須重新排列我的代碼,那怎么辦?
我嘗試將以下內容添加到util.py中 :
from . import __init__
print(__init__.some_var_in_init)
但我收到此錯誤消息:
Traceback (most recent call last):
File "util.py", line 3, in <module>
print(__init__.some_var_in_init)
AttributeError: 'method-wrapper' object has no attribute 'some_var_in_init'
所以我想這不是解決之道。
import foo
可以正常工作。
我找到了答案。 添加import foo
是不夠的,但是還必須添加父文件夾:
import os, sys
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
import foo
print(foo.some_var_in_init)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.