Set_up:我有一个.py文件,用于我需要在程序中使用的每个函数.
在这个程序中,我需要从外部文件调用该函数.
我试过了:
from file.py import function(a,b)
但我得到错误:
ImportError:没有名为'file.py'的模块; 文件不是包
我该如何解决这个问题?
首先以.py格式保存文件(例如,my_example.py
).如果该文件有功能,
def xyz(): -------- -------- def abc(): -------- --------
在调用函数中,您只需键入以下行.
file_name:my_example2.py
============================
import my_example.py a = my_example.xyz() b = my_example.abc()
============================
你不必添加file.py
.
只需将文件保存在与要导入文件的文件相同的位置即可.然后只需导入您的功能:
from file import a, b
如果文件位于不同的包结构中,并且您想从其他包中调用它,则可以按照以下方式调用它:
假设您在python项目中具有以下包结构:
在com.my.func.DifferentFunction
-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
文件中定义导入语句以导入所有功能
from com.my.func.DifferentFunction import *
或定义要导入的每个函数名称
from com.my.func.DifferentFunction import add, sub, mul
然后Example3.py
可以调用函数执行:
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
在MathMethod.Py内部。
def Add(a,b): return a+b def subtract(a,b): return a-b
内部Main.Py
import MathMethod as MM print(MM.Add(200,1000))
输出:1200
您可以通过两种方式完成此操作.首先只是从file.py导入你想要的特定功能.要做到这一点
from file import function
另一种方法是导入整个文件
import file as fl
然后你可以调用file.py中的任何函数
fl.function(a,b)
首先,你不需要.py
.
如果你有一个文件a.py
,里面你有一些功能:
def b(): # Something return 1 def c(): # Something return 2
并且你想要导入它们z.py
你必须写
from a import b, c
将模块重命名为“文件”以外的名称。
然后还要确保在调用函数时:
1)如果要导入整个模块,则在调用它时要重申模块名称:
import module module.function_name()
要么
import pizza pizza.pizza_function()
2)或如果要导入特定功能,带别名的功能或所有使用*的功能,则无需重复模块名称:
from pizza import pizza_function pizza_function()
要么
from pizza import pizza_function as pf pf()
要么
from pizza import * pizza_function()
遇到了相同的功能,但我不得不做下面的工作.
如果您看到'ModuleNotFoundError:No module named',您可能需要在文件名前面的点(.),如下所示;
来自.file import funtion
file.py
导入时无需添加.只需编写from file import function
,然后使用调用该函数function(a, b)
.这可能不起作用的原因是因为它file
是Python的核心模块之一,所以我建议你更改文件的名称.
需要注意的是,如果你想从导入函数a.py
到一个名为b.py
,您需要确保a.py
并b.py
在同一目录下.
您也可以从不同的目录中调用该函数,以防您不能或不想将该函数放在您正在使用的同一目录中.你可以用两种方式做到这一点(也许有更多的选择,但这些是对我有用的).
备选方案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