导入python模块运行时的困惑
亲爱的各位,我正试图在运行时导入一个python模块(从admincases导入admincases),但在这方面遇到了一些问题。正在征求您的指导意见导入python模块运行时的困惑,python,unit-testing,python-2.7,Python,Unit Testing,Python 2.7,亲爱的各位,我正试图在运行时导入一个python模块(从admincases导入admincases),但在这方面遇到了一些问题。正在征求您的指导意见 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
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正如samy.vilar所暗示的,看起来您应该确保
admincases
模块有一个admincases
变量。事实上,您的代码确实从admincases导入admincases
我的猜测是,如果您使来自admincases的
导入admincases
工作,那么您的代码应该工作。我通过使用以下方法实现:
test_mod = __import__(testcase[1], fromlist=[])
test_class = getattr(test_mod, testcase[1])
\from admincases import admincases
是否在注释中?@AshwiniChaudhary是的,这就是我正在尝试动态加载的模块。如果它是一个包,它是否与此脚本位于同一目录中该文件夹中是否有\uu init\uuuuuuuuy.py
?admincases
实际上有什么或是什么?@RagavAttributeError:“module”对象没有属性“admincases”
告诉您,admincases
中没有任何名称admincases
@samy.vilar是的,它在同一个目录中,没有任何init方法调用..它包含test过程是的,当我导入“从admincases导入admincases”时它确实工作,但我必须动态地进行此导入,这就是我面临的问题