[英]How to import module so that it can be accessed from any directory?
我有以下項目結構:
x/
a.py
b.py
main.py
一個.py:
from b import *
class A:
.....
主文件
from x.a import A
.....
我希望能夠獨立運行a.py
並通過main.py
訪問其功能
我能夠運行a.py
但是當我嘗試按main.py
所示導入它時, main.py
該模塊。 我可以通過a.py
添加到a.py
來解決此問題:
sys.path.append(os.path.join(os.path.dirname(__file__)))
但這感覺很糟糕。 有沒有更好的方法來實現所需的行為?
您需要將目錄“x”標記為一個包,以便能夠從中加載任何內容。
如 Python 的官方文檔所述,您必須在“x”的根目錄中創建一個空的“__init__.py”文件以將其標記為包。
那么你的目錄結構應該是這樣的:
.
└── x
├── __init__.py
├── a.py
└── b.py
└── main.py
您可能想要編輯“a.py”以加載相對於它所在的包的模塊,使用句點表示當前包:
# x/a.py
from .b import *
class A:
# rest of your code
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.