File.py包含一个名为function的函数。如何导入?

from file.py import function(a,b)

上面给出了一个错误:

ImportError:没有名为'file.py'的模块;文件不是包


当前回答

您应该将该文件置于与您试图导入的Python文件相同的位置。'from file import function'也足够了。

其他回答

以上任何一种方法都不适合我。我得到ModuleNotFoundError:没有模块命名任何错误。 所以我的解决方案是像下面这样导入

from . import filename # without .py  

在我的第一个文件中,我定义了如下函数fun

# file name is firstFile.py
def fun():
  print('this is fun')

在第二个文件中,假设我想把这个函数命名为fun

from . import firstFile

def secondFunc():
   firstFile.fun() # calling `fun` from the first file

secondFunc() # calling the function `secondFunc` 

在我的主脚本detectiverb .py文件中,我需要调用passGen函数,生成密码哈希,该函数在模块\passwordGen.py下

对我来说最快最简单的解决办法是

下面是我的目录结构

所以在detectiveROB.py中,我用下面的语法导入了我的函数

从模块。passwordGen导入passGen

首先,从file.py导入函数:

from file import function

之后,使用以下方法调用函数:

function(a, b)

请注意,file是Python的核心模块之一,所以我建议您将file.py的文件名更改为其他内容。

请注意,如果您试图将函数从a.py导入到名为b.py的文件中,则需要确保a.py和b.py位于同一目录中。

导入时不要写.py。

让file_a.py包含一些函数:

def f():
  return 1

def g():
  return 2

要将这些函数导入file_z.py,请执行以下操作:

from file_a import f, g

您也可以从不同的目录调用该函数,以防您不能或不希望在您正在工作的同一目录中拥有该函数。你可以通过两种方式做到这一点(也许还有更多的选择,但这些是对我有效的方法)。

选择1 临时更改工作目录

import os

os.chdir("**Put here the directory where you have the file with your function**")

from file import function

os.chdir("**Put here the directory where you were working**")

选择2 将函数所在的目录添加到sys.path

import sys

sys.path.append("**Put here the directory where you have the file with your function**")

from file import function