파이썬에서 다른 파일에서 함수 호출 사용해야하는 각 함수마다 .py 파일이 있습니다. 이

Set_up : 프로그램에서 사용해야하는 각 함수마다 .py 파일이 있습니다.

이 프로그램에서는 외부 파일에서 함수를 호출해야합니다.

난 노력 했어:

from file.py import function(a,b)

하지만 오류가 발생합니다.

ImportError : ‘file.py’라는 모듈이 없습니다. 파일이 패키지가 아닙니다

이 문제를 어떻게 해결합니까?



답변

file.py가져 오는 동안 추가 할 필요가 없습니다 . 그냥 쓰고 from file import function나서를 사용하여 함수를 호출하십시오 function(a, b). 이것이 작동하지 않는 이유 file는 파이썬의 핵심 모듈 중 하나 이기 때문에 파일 이름을 변경하는 것이 좋습니다.

당신이 가져 오기 기능하려고하는 경우주의 a.py라는 파일에 b.py, 당신이 있는지 확인해야합니다 a.pyb.py같은 디렉토리에 있습니다.


답변

우선 당신은 필요하지 않습니다 .py.

파일이 a.py있고 내부에 몇 가지 기능이 있습니다.

def b():
  # Something
  return 1

def c():
  # Something
  return 2

그리고 당신은 그들을 가져올 z.py당신이 작성해야

from a import b, c


답변

두 가지 방법으로이 작업을 수행 할 수 있습니다. 먼저 file.py에서 원하는 특정 함수를 가져 오는 것입니다. 이 사용하려면

from file import function

다른 방법은 전체 파일을 가져 오는 것입니다

import file as fl

그런 다음 file.py 내의 모든 함수를 사용하여 호출 할 수 있습니다

fl.function(a,b)


답변

작업중인 동일한 디렉토리에서 함수를 사용할 수 없거나 원하지 않는 경우 다른 디렉토리에서도 함수를 호출 할 수 있습니다. 두 가지 방법 으로이 작업을 수행 할 수 있습니다 (아마도 더 많은 대안이 있지만 이것이 나를 위해 일한 대안입니다).

대안 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


답변

파일이 다른 패키지 구조에 있고 다른 패키지에서 파일을 호출하려는 경우 다음과 같은 방식으로 파일을 호출 할 수 있습니다.

파이썬 프로젝트에 다음과 같은 패키지 구조가 있다고 가정 해 봅시다.

파이썬 패키지와 파일 구조

com.my.func.DifferentFunction파이썬 파일에는 다음과 같은 기능이 있습니다.

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모든 기능을 가져 오기 위해 파일에 import 문 정의

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


답변

동일한 기능을 사용했지만 작동하려면 아래를 수행해야했습니다.

‘ModuleNotFoundError : No module named’가 표시되면 아래와 같이 파일 이름 앞에 dot (.)이 필요할 것입니다.

에서 .file 수입 연료 소모량


답변

먼저 파일을 .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()

=============================