我正在使用django API製作網站。 問題是我收到一個怪異的導入錯誤。我有一個文件中的函數調用另一個文件中的另一個函數,該文件又調用第一個文件中的第三個函數。使用python和Django時導入錯誤
問題在於第三個功能。當我嘗試導入它,我得到一個錯誤
cannot import deletefromS3.
一個完整的堆棧跟蹤如下
這裏給出的是兩個模塊的代碼片段:
topichandler.py:
from sdbhandler.mediahandler import deleteMediaParent
def deletefromS3(itemid,folder):
itemid=folder+itemid
bucket = connect_s3()
for key in bucket:
fname=key.split(".")[0]
if(fname==itemid):
bucket.delete_key(key)
return []
def deleteTopic(itemid,parentId='NULL'):
sdb=connect()
domain= sdb.get_domain(DOMAIN)
rootitem = domain.get_item(itemid)
if(parentId=='NULL'):
query= 'select * from ' + DOMAIN + ' where itemName()="'+itemid+'"'
rs = domain.select(query)
else:
rs = [rootitem]
for item in rs:
deleteMediaParent(item.name)
deletefromS3(item.name,'topicsK2/')
domain.delete_attributes(item.name)
deleteMediaParent(rootitem.name)
deletefromS3(rootitem.name,'topicsK2/')
domain.delete_attributes(rootitem.name)
mediahandler.py:
from sdbhandler.topichandler import deletefromS3
def deleteMediaParent(parentid):
sdb=connect()
domain = sdb.get_domain(DOMAIN)
query = 'select * from '+ DOMAIN + 'where ' +FIELD_TopicID + ' = "' + parentid + '"'
rs = domain.select(query)
for item in rs:
deleteQuestionParent(item.name)
deletefromS3(item.name,'mediaK2/')
domain.delete_attributes(item.name)
還有更多的依賴關係,但我不能發佈我的整個代碼太多了。 我不能從調用方法的文件導入?
因此,我在一個單獨的文件中定義該公共模塊? – Sohaib
@SilentPro是的,你也可以這樣做。 – andrewdotn
謝謝我是新來的python已經完成了我在java中的大部分編碼,所以不知道這些神經的某些可以這麼說。 – Sohaib