[英]ImportError: How do I import a python module?
我嘗試導入 Python 模塊但失敗了。 這是我的文件夾層次結構:
package/
folder/
a.py
utils/
b.py
在模塊a.py
,我嘗試導入b.py
但收到ImportError
。
如何使用 function test
從模塊b
到a.py
?
文件:
一個.py
def usetest():
test()
b.py
def test():
print("hello world")
可以使用幾種不同的語法導入 Python 模塊:
import...
語句: import package.utils.b
現在將允許您使用package.utils.b.test()
。 不幸的是它很長。import... as...
語句: import package.utils.b as b
會讓您使用b.test()
。from... import...
語句: from package.utils.b import test
將讓您使用test()
。from... import... as...
語句: from package.utils.b import test as test_me
將讓您使用test_me()
。 所有這些選項都將運行完全相同的 function。嘗試將它們放在a.py
的頂部。
指定整個路徑, package.utils.b
稱為絕對形式。 您還可以以相對形式導入:
import..utils.b as b
會讓你使用b.test()
。 注意開頭的 2 個點,表示go up one folder 。from..utils.b import test
會讓你使用test()
。from..utils.b import test as test_me
會讓你使用test_me()
。開頭的每個點指定 go 向上一個文件夾,除了一個,上面寫着“這個文件夾”。
如果您嘗試運行的主文件在 package ( a.py
) 中,您應該切換到包含 package 的目錄,並使用-m
運行該文件。 在您的情況下,切換到包含package
的目錄,然后運行python -m package.folder.a
。
有關導入模塊的更多信息,請參閱Python 文檔。
您還可以使用完整路徑動態導入 Python 模塊。 它更高級,不會在此答案中涵蓋。
package/
folder/
a.py
utils/
b.py
進口:
如果 package 是您的主文件夾,則使用以下語法導入模塊。
import utils.b as b
b.test()
**or**
from utils import b
**or**
To import only method
from utils.b import test
**or**
with alias name
from utils.b import test as my_test (my_test is the method alias name)
進口:
import folder.b as b b.test()
or from folder.b import test
or with alias name from folder.b import test as my_test
(my_test 是別名)
如果您嘗試運行的主文件在 package (a.py) 中,您應該切換到包含 package 的目錄,並使用-m
運行該文件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.