【发布时间】:2016-09-13 13:39:08
【问题描述】:
假设我有一些脚本,带有函数my_function。现在,这个功能需要几个包。因此,假设文件如下所示:
import package_A
import package_B
def my_function():
do_something
现在,如果我想在其他地方使用这个功能,我可以说
from my_file import my_function
my_function()
但是,此时,调用将停止并显示 package_A 和 package_B 未知的错误。
我该如何解决这个问题?我是否必须在调用my_function 的脚本中再次为my_function 进行所有导入?如果是这样,有没有办法自动检查并导入该文件中的所有导入?
【问题讨论】:
-
package_A和package_B的位置在您的PYTHONPATH上是否可见? -
这里已经回答了这个问题:stackoverflow.com/questions/13598958/…
-
@kfb,是的。如果不清楚,我很抱歉,但我在这里提到的包是相当通用的;想想numpy,scipy。所以这些都在路上。但是,如果我在 my_file 中导入了 numpy,而不是在我导入 my_file 的脚本中,则会出现此错误。也就是说,我如何确保在调用 my_function 时,所有相关的包都会被加载?
-
@John 嗯。在那种情况下,我不确定会发生什么。您能否编辑您的问题,让我们更多地了解您的项目布局?我想知道这是否与缺少
__init__.py有关,尽管我希望找不到my_file而不是package_A或package_B。