能够导入模块但不能使用其中的功能

时间:2018-12-04 09:49:30

标签: python-3.x function

我在名为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。

请问我是否需要有关此问题的更多信息。

0 个答案:

没有答案