我在名为learn
的模块中有一个名为lrn_proto
的函数。
我可以在其他脚本中使用它,也可以导入它,但是我无法使用它的功能,它以前可以工作。但是现在它不再起作用了,我什至没有修改源代码。
这里是lrn_proto
的来源:
import sys
import os
import re
import time
sys.path.append(os.path.abspath('..\\..\\..\\conf'))
sys.path.append(os.path.abspath('..\\..\\writer\\mem_writer_proto'))
from cfg_exe import exe_loc as loc
sys.path.append(os.path.abspath(loc.lib))
sys.path.append(os.path.abspath(loc.mem))
sys.path.append(os.path.abspath(loc.main))
import mem_writer as mw
import prototype_ui as ptui
def learn(src,keywords,type,identifier):
if src == r'\exit':
print('You have choose to exit this program, see you later.')
sys.exit()
elif src == r'\add':
ptui.menu()
temp = src.lower()
for x in keywords:
if x in temp:
temp_k1 = list(temp.partition(x))
try:
temp_k1_t = list(str(temp_k1.index(x)))
except ValueError:
pass
for b in temp_k1_t:
temp_k = list([temp_k1.pop(int(b))])
print('True\n')
continue
elif x not in temp:
temp_k = list('')
pass
for x in type:
if x in temp:
temp_t1 = list(temp.partition(x))
try:
temp_t1_t = list(str(temp_t1.index(x)))
except ValueError:
pass
for b in temp_t1_t:
temp_t = list([temp_t1.pop(int(b))])
print('True\n')
continue
elif x not in temp:
temp_t = list('')
pass
for x in identifier:
if x in temp:
temp_i1 = list(temp.partition(x))
try:
temp_i1_t = list(str(temp_i1.index(x)))
except ValueError:
pass
for b in temp_i1_t:
temp_i = list([temp_i1.pop(int(b))])
print('True\n')
continue
elif x not in temp:
temp_i = list('')
pass
temp_kti = list(temp_k+temp_t+temp_i)
act_patt = '|'.join(temp_kti)
act = (''.join((re.split(act_patt,temp))).strip(' .'))
print('Output:')
print('Keywords: ',temp_k,'\nType: ',temp_t,'\nIdentifier: ',temp_i,'\nContent: ',act)
mw.dict(title,type,keywords,identifier,actions)
我尝试过:
from lrn_proto import learn
它产生:
ImportError: cannot import name 'learn' from 'lrn_proto'
然后用
import lrn_proto
,
它在调用函数时产生:
AttributeError: module 'lrn_proto' has no attribute 'learn'
奇怪的是,那些产生的错误并没有告诉我我的代码有什么问题。
我已经将所有模块目录添加到sys.path
有人可以告诉我我的代码有什么问题吗? 我不知道我的代码有什么问题。
我正在Windows上使用Python3。
请问我是否需要有关此问题的更多信息。