【问题标题】:Calling a function from a script, re-import all packages?从脚本调用函数,重新导入所有包?
【发布时间】: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_Apackage_B 的位置在您的PYTHONPATH 上是否可见?
  • 这里已经回答了这个问题:stackoverflow.com/questions/13598958/…
  • @kfb,是的。如果不清楚,我很抱歉,但我在这里提到的包是相当通用的;想想numpy,scipy。所以这些都在路上。但是,如果我在 my_file 中导入了 numpy,而不是在我导入 my_file 的脚本中,则会出现此错误。也就是说,我如何确保在调用 my_function 时,所有相关的包都会被加载?
  • @John 嗯。在那种情况下,我不确定会发生什么。您能否编辑您的问题,让我们更多地了解您的项目布局?我想知道这是否与缺少__init__.py 有关,尽管我希望找不到my_file 而不是package_Apackage_B

标签: python import


【解决方案1】:

您可以让多个脚本相互调用,可以在每个脚本中导入多个包,并且在您拥有该脚本中的功能所需的包之前,它不会引发错误。

Found this link which will answer your question better

【讨论】:

  • “您不能在一个脚本中导入包并在另一个脚本中使用该包。”...是的,您可以
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-25
  • 2016-03-13
  • 1970-01-01
  • 2019-03-26
  • 2021-02-25
相关资源
最近更新 更多