在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python  網(wǎng)絡(luò)安全/ python 引入 __init__.py 中的方法報(bào)錯(cuò)不存在

python 引入 __init__.py 中的方法報(bào)錯(cuò)不存在

問題

在腳本 article.py 中引入當(dāng)前目錄下的 __init__.py 的內(nèi)容報(bào)錯(cuò) ImportError: cannot import name 'fake'

路徑

test/

__init__.py
article.py

文件 __init__.py 中

# -*- coding:utf-8 -*-
def fake():
    print('A')

文件 article.py 中

# -*- coding:utf-8 -*-
from . import fake
print(fake)

執(zhí)行 python article.py 報(bào)錯(cuò)提示:

Traceback (most recent call last):
  File "article.py", line 2, in <module>
    from . import fake
ImportError: cannot import name 'fake'

如何在 article.py 中引入 __init__.py 中的內(nèi)容

回答
編輯回答
孤客

form test import fake

2017年3月29日 07:51
編輯回答
故人嘆

__init__.py 是給包用的,你導(dǎo)入的.是什么意思...

2017年5月23日 12:32
編輯回答
過客

臨時(shí)的解決方式就是 from __init__ import fake ,但這種寫法實(shí)在是太詭異了,這種方式就把 __init__.py 視為普通的 python 文件而已。 然而, __init__.py 給包使用的,一個(gè)特殊文件的存在,而例子的程序入口又視為要導(dǎo)入的模塊,實(shí)在是難受,就像吃飯時(shí)吃到了沙子。

包中的模塊部分要引入 __init__ 的變量的正確姿勢可以參照標(biāo)準(zhǔn)庫的處理方式:

圖片描述

希望對你有幫助。

2018年6月12日 19:49
編輯回答
舊時(shí)光

感覺是一個(gè)奇怪的結(jié)構(gòu),首先上解決方法:

from __init__ import fake

應(yīng)該可以。

但是還是不推薦這么做,直接寫__init__import里可能會導(dǎo)致以后的導(dǎo)入問題。建議把article.py移到\test外。然后再用from test import fake。究其原因在于article.py是你要導(dǎo)入的模塊的本事一部分,如果直接用from . import fakefrom test import fake來導(dǎo)入會報(bào)錯(cuò)。

最后FYI,用\test這個(gè)命名可能和python自帶的test重合,建議用個(gè)別致一點(diǎn)的名字。

2018年1月11日 22:08
編輯回答
挽青絲

這樣試試

form test import fake
2017年1月2日 12:54