亲爱的所有人都试图在运行时导入一个python模块(来自管理员导入管理员),并面临相关的问题。请求你的指导。
import os
import threading
import sys
import Queue
import unittest
import time
import logging
from functions import functions
from functions import db_connect
from one import ParametrizedTestCase
#from admincases import admincases
import MySQLdb as mdb
class inittest(unittest.TestCase):
fun = functions()
db = db_connect()
cur = db.db_conn()
cur.execute ("SELECT * FROM testcase")
testcases = cur.fetchall ()
for testcase in testcases:
print "%s, %s" % (testcase[0], testcase[1])
import_string = "from " + testcase[1] + " import " + testcase[1]
print import_string
exec import_string
case = str_to_class(testcase[1])
print case
print "Number of rows returned: %d" % cur.rowcount
suite = unittest.TestSuite()
suite.addTest(ParametrizedTestCase.parametrize(case, param=EppQueue,queue1=CrQueue))
unittest.TextTestRunner(verbosity=2).run(suite)
raw_input("keyy")
执行此代码时,我收到以下错误:
return getattr(sys.modules[__name__], str)
AttributeError: 'module' object has no attribute 'admincases'
不知道错误是什么
此致 Venkat.S
答案 0 :(得分:0)
正如samy.vilar暗示的那样,您应该确保admincases
模块具有admincases
变量。实际上,您的代码执行from admincases import admincases
。
我的猜测是,如果你让from admincases import admincases
工作,那么你的代码应该有效。
答案 1 :(得分:0)
我是通过使用以下方法实现的:
test_mod = __import__(testcase[1], fromlist=[])
test_class = getattr(test_mod, testcase[1])