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

from file.py import function(a,b)

上面给出了一个错误:

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


当前回答

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

from file import function

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

function(a, b)

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

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

其他回答

修复

ModuleNotFoundError:没有命名模块

尝试在文件名前使用点(.)来进行相对导入:

from .file import function

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

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

下面是我的目录结构

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

从模块。passwordGen导入passGen

如果你的文件在不同的包结构中,你想从不同的包中调用它,那么你可以这样调用它:

假设你的python项目中有以下包结构:

在python文件中你有一些函数,比如:

def add(arg1, arg2):
    return arg1 + arg2

def sub(arg1, arg2) :
    return arg1 - arg2

def mul(arg1, arg2) :
    return arg1 * arg2

你想从Example3.py调用不同的函数,那么你可以通过以下方式做到:

在Example3.py - file中定义import语句用于导入所有函数

from com.my.func.DifferentFunction import *

或者定义想要导入的每个函数名

from com.my.func.DifferentFunction import add, sub, mul

然后在Example3.py中调用execute函数:

num1 = 20
num2 = 10

print("\n add : ", add(num1,num2))
print("\n sub : ", sub(num1,num2))
print("\n mul : ", mul(num1,num2))

输出:

 add :  30

 sub :  10

 mul :  200

只是一个简单的建议, 那些相信自动导入的人在Pycharm中按alt+ enter无法得到帮助。

只需从你想导入的地方更改文件名: 右键单击文件,然后单击refactor-> rename。 您的自动导入选项将开始出现

.py文件中的函数(当然)可以在不同的目录中)可以简单地导入,只需先写入目录,然后写入没有.py扩展名的文件名:

from directory_name.file_name import function_name

function_name()