2017-10-14 85 views
0

我有一个包含一些函数的.py文件。其中一个功能需要Python的csv模块。我们称之为foo在另一个模块中使用模块

这是事情:如果我进入python shell,导入csv模块,写入foo的defitinion并使用它,一切运行良好。

当我尝试从自定义模块导入foo时出现问题。如果我进入python shell,导入csv模块,导入foo所在的模块并尝试使用它,它将返回一个错误,指出'csv'没有被定义(它的行为就好像csv模块没有被进口)。

我想知道我是否缺少某种与进口相关的作用域行为。

如何启用foo以使用csv模块或任何其他需要的模块?

预先感谢您

+1

'foo'是否包含语句'import csv'? – snakecharmerb

回答

0

通过定义foo函数的文件进口它。

foo函数不知道在包含您在REPL中使用的全局变量(您已导入csv)的字典中查找。它看起来是模块的全局变量(当然这里还有其他步骤),如果它没有找到它,你会得到一个NameError

+0

ευχαριστώ!这将为我的情况。但我很好奇:是否有任何方法可以在REPL中读取foo或将csv模块传递给foo模块范围? –

+0

@PabloMΠαρακαλώ:)!是的,您始终可以将csv模块附加到包含foo的模块。例如,如果'mod.py'是模块的名称,并且通过'import mod'导入它,则可以(在导入'csv'后)'mod.csv = csv'。当然,这是一种奇怪的做事方式。 –

+0

我有这样的想法。大!非常感谢! –

相关问题