2 回答

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
舊版本
要解決此問(wèn)題,請(qǐng)?zhí)鎿Q".."為os.pardir:
import os, sys
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir)))
from _common import A
新版本
上面的代碼沒(méi)有解決問(wèn)題中的問(wèn)題,因?yàn)檎嬲膯?wèn)題在于項(xiàng)目結(jié)構(gòu)而不是特定行。問(wèn)題是循環(huán)導(dǎo)入。提供完整的回溯后,問(wèn)題變得清晰。這是重現(xiàn)問(wèn)題的簡(jiǎn)單方法 - 考慮 3 個(gè)文件...
主要.py:
import a
一個(gè).py:
import b
A = 'A'
b.py:
from a import A
...錯(cuò)誤是:
ImportError: cannot import name 'A'
或
b.py:
import a
BB = a.A
...錯(cuò)誤是:
AttributeError: module 'a' has no attribute 'A'
問(wèn)題的解決方法已經(jīng)討論過(guò)很多次了——在SO上搜索

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊
更改文件目錄:
import os, sys
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__),"../../project")))
from _common import A
添加回答
舉報(bào)