簡體   English   中英

如何導入模塊以便可以從任何目錄訪問它?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM