File.py包含一个名为function的函数。如何导入?
from file.py import function(a,b)
上面给出了一个错误:
ImportError:没有名为'file.py'的模块;文件不是包
File.py包含一个名为function的函数。如何导入?
from file.py import function(a,b)
上面给出了一个错误:
ImportError:没有名为'file.py'的模块;文件不是包
当前回答
将模块重命名为'file'以外的内容。
当你调用这个函数时,也要确保:
1)如果你导入了整个模块,你在调用它的时候重复模块名:
import module
module.function_name()
or
import pizza
pizza.pizza_function()
2)或者如果你导入特定的函数,带有别名的函数,或者所有使用*的函数,你不需要重复模块名:
from pizza import pizza_function
pizza_function()
or
from pizza import pizza_function as pf
pf()
or
from pizza import *
pizza_function()
其他回答
修复
ModuleNotFoundError:没有命名模块
尝试在文件名前使用点(.)来进行相对导入:
from .file import function
你不需要添加file.py。
只要将该文件与要导入的文件放在相同的位置即可。然后导入你的函数:
from file import a, b
附加一个点。在文件名前面,如果你想导入这个文件,这个文件在你运行代码的同一个目录下。
例如,我正在运行一个名为a.py的文件,我想导入一个名为addFun的方法,它是用b.py写的,b.py在同一个目录中
from .b import addFun
以上任何一种方法都不适合我。我得到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`
解决方案1:在一个文件myfun.py中定义任何函数。
# functions
def Print_Text():
print( 'Thank You')
def Add(a,b):
c=a+b
return c
在另一个文件中:
#Import defined functions
from myfun import *
#Call functions
Print_Text()
c=Add(1,2)
解决方案2:如果上述解决方案对Colab不起作用
创建一个foldermyfun 在这个文件夹中创建一个文件__init__.py 在__init__.py中编写所有函数 从myfun Import *导入Colab笔记本中的函数