정의 된 여러 함수가 들어있는 python 스크립트를 다른 python 스크립트 using this approach via SO으로 가져 오려고합니다. 임포트하고 싶은 스크립트는 여러 함수 (다른 함수 안에 중첩되어 있음)를 정의하기 때문에 각 함수가 아닌 개별 함수를 개별적으로 임포트하는 것을 선호합니다. 아래의 간단한 예제를 사용하고 있습니다.python 스크립트에서 정의 된 모든 함수를 python 스크립트 2로 가져 오는 방법은 무엇입니까?
내 desktop
에 'workspace'
이라는 폴더가 있습니다. 폴더 'workspace'
에는 단일 기능 (아래 정의 됨)과 '__init__.py'
이라는 빈 파일이 포함 된 'pre.py'
이라는 스크립트가 있습니다. 같은 'workspace'
폴더에서
def get_g(x):
""" Sample Function """
if isinstance(x, list):
res = [xi**2 for xi in x]
else:
res = x**2
return res
, 나는
'pre.py'
에 정의 된 모든 기능을 수입하고자하는
'post.py'
라는 이름의 스크립트가있다.
'post.py'
의 샘플 스크립트는 다음과 같습니다.
시도 # 1 :
import matplotlib.pyplot as plt
def get_my_imports(script_name, fileloc="/Users/myname/Desktop/workspace"):
""" Import Sample Function (defined above) """
from fileloc import script_name
get_my_imports('pre.py')
x = np.linspace(1, 10, 100)
y = get_g(x)
plt.plot(x, y)
plt.show()
>> ImportError: No module named 'fileloc'
시도 # 2 : 내 첫 번째 시도에서
import matplotlib.pyplot as plt
from "/Users/myname/Desktop/workspace" import 'tst.py' ## error in this line
x = np.linspace(1, 10, 100)
y = get_g(x)
plt.plot(x, y)
plt.show()
>> SyntaxError: invalid syntax
, 나는 평 스크립트를 가져 오는 방법을 일반화하기 위해 노력했다. 그러나 통역사는 fileloc
이 내 의도가 아니라 가져 오기 가능한 모듈이라고 생각합니다. 나의 두 번째 시도는 내가 이것을하는 방법에 대한 근본적인 것을 이해하지 못한다고 말한다. 이 스타일의 접근 방식은 어떻게 올바르게 작동 할 수 있습니까? (이 파일 위치와 관련이 있다면 사과 노트북을 사용하고 있습니다.) 당신이 개 파이썬 파일이 동일한 작업 공간 폴더에 있기 때문에
링크 된 사례를 참조하십시오.^ –