我有一個從其它文件導入字典(我使用Python 2.7版)的Python:無法導入詞典從另一個文件
# src/config/config_bankheist.py
bankheist_config = {
###############################
# SECTION 1 : ENTERY OF HEIST #
###############################
'activation_command': '!bankheist',
(...) # More key/values here
} # End of bankheist_config
問題,當我嘗試將其導入主文件,其中它被使用:
#src/lib/commands/bankheist.py
import string
from src.lib.timers import InfiniteTimer
import src.lib.irc as irc_
from src.config.config import config
from src.config.config_bankheist import bankheist_config as bankheist
def check_init_status():
try:
return bankheist['init_status']
except KeyError:
bankheist['init_status'] = False
return False
所以在這裏我嘗試通過鍵'init_status'返回值。第一次,它不會找到鑰匙,因爲銀行家還沒有啓動......所以我非常希望找到一個沒有找到的KeyError。相反,我得到一個TypeError:'function'對象沒有屬性'__ getitem __'。我嘗試了將init_status鍵添加到字典並初始化爲False,我甚至嘗試導入爲全局變量(假設它在配置文件中是全局的,並且在定義方法上是全局的),我試圖把bankhiest_config作爲bankhiest在同一個文件中,並且它仍然不起作用。
我有類似於config_command.py(與config_bankheist.py相同的文件夾)和commands.py(與bankheist.py相同的文件夾),那有效。所以我不知道我在這裏做錯了什麼。
由於提前, 勞倫斯
PS:如果有興趣,完整的代碼在GitHub上:https://github.com/LaurensScheldeman/TwitchBot/commits/master
你確定你的'bankheist'模塊中沒有另一個名爲'bankheist'的對象(來自追蹤函數)? –
'__init __。py'在src/config中丟失? – Chintan
__init__.py在所有目錄中,而不是問題@Chintan和文件本身被稱爲bankheist.py ...可能是問題嗎?當我導入該文件:module = importlib.import_module('src.lib.commands。%s'%command) – Laurens