【发布时间】:2012-07-14 09:59:51
【问题描述】:
我有 2 个 python 文件。一个是尝试导入第二个。我的问题是第二个被命名为 math.py。我不能重命名它。当我尝试调用位于 math.py 中的函数时,我不能,因为我最终得到了全局数学模块。我将如何导入我的本地文件而不是全局文件。我正在使用 Python 2.7,这(大致)是我的导入语句:
cstr = "math"
command = __import__(cstr)
稍后我尝试:
command.in_math_py_not_global()
编辑:一个更完整的例子:
def parse(self,string):
clist = string.split(" ")
cstr= clist[0]
args = clist[1:len(clist)]
rvals = []
try:
command = __import__(cstr)
try:
rvals.extend(command.main(args))
except:
print sys.exc_info()
except ImportError:
print "Command not valid"
【问题讨论】:
-
我刚刚尝试在同一目录中创建一个带有
import math的test.py和一个math.py,并且效果很好。我可以用我自己的math.py拨打math.foo()没有问题。 -
我得到 AttributeError("'module' object has no attribute 'main'",)
-
您能否提供一个小而完整的示例,准确说明您正在做什么以导致该错误?
-
这里,我基本上是让用户输入一个字符串,将该字符串的第一个单词用作命令。该命令被传递给以该命令命名的模块。在这种情况下,我使用一个名为 math.py 的文件进行数学运算。
标签: python import python-2.7