[PYTHON] 모듈을 가져 오는 위치는 어디입니까?
PYTHON모듈을 가져 오는 위치는 어디입니까?
두 개의 Python 모듈이 있고 path_b가 가져 오기 경로에 있다고 가정합니다.
# file: path_b/my_module.py
print "I was imported from ???"
#file: path_a/app.py
import my_module
모듈을 가져온 위치를 볼 수 있습니까? app.py를 시작하면 "path_a / app.py에서 가져온 것"과 같은 출력을 원합니다 (파일 이름이 필요하기 때문에).
편집하다: 더 나은 이해를 위해; 나는 다음과 같이 쓸 수있다.
# file: path_b/my_module.py
def foo(file):
print "I was imported from %s" % file
#file: path_a/app.py
import my_module
my_module.foo(__file__)
출력은 다음과 같습니다.
$> python path_app.py
I was imported from path_a/app.py
해결법
-
==============================
1.이 작업을 수행하는 더 쉬운 방법이있을 수 있지만이 작동합니다.
이 작업을 수행하는 더 쉬운 방법이있을 수 있지만이 작동합니다.
import inspect print inspect.getframeinfo(inspect.getouterframes(inspect.currentframe())[1][0])[0]
경로가 스크립트 위치의 상위 디렉토리 인 경우 현재 작업 디렉토리를 기준으로 인쇄됩니다.
-
==============================
2.이 시도:
이 시도:
>>> import my_module >>> my_module.__file__ '/Users/myUser/.virtualenvs/foobar/lib/python2.7/site-packages/my_module/__init__.pyc'
편집하다
이 경우 모듈의 __init__.py 파일에 다음을 작성하십시오.
print("%s: I was imported from %s" %(__name__, __file__))
-
==============================
3.어디에서 왔는지 my_module .__ file__을 사용해보십시오. AttributeError를 얻으면 파이썬 소스 (.py) 파일이 아닐 것입니다.
어디에서 왔는지 my_module .__ file__을 사용해보십시오. AttributeError를 얻으면 파이썬 소스 (.py) 파일이 아닐 것입니다.
-
==============================
4.setuptools와 같이 모듈이 저장된 위치를보고 싶으면 쉘을 입력하십시오.
setuptools와 같이 모듈이 저장된 위치를보고 싶으면 쉘을 입력하십시오.
$ python -c "가져 오기 setuptools; print (setuptools .__ file__)"
-
==============================
5.또한, 모듈 m의 함수 / 클래스 f를 가지고 있다면, 모듈 inspect를 사용하여 모듈의 경로를 얻을 수 있습니다
또한, 모듈 m의 함수 / 클래스 f를 가지고 있다면, 모듈 inspect를 사용하여 모듈의 경로를 얻을 수 있습니다
import inspect from m import f print inspect.getmodule(f)
-
==============================
6.간단한 스크립트를 작성 했으므로 pywhich 명령이 있습니다. 파이썬 모듈의 출처를 찾을 수 있습니다. \ __ file__ 속성이없는 sys와 같은 일부 내장 함수에는 작동하지 않습니다.
간단한 스크립트를 작성 했으므로 pywhich 명령이 있습니다. 파이썬 모듈의 출처를 찾을 수 있습니다. \ __ file__ 속성이없는 sys와 같은 일부 내장 함수에는 작동하지 않습니다.
이것은 리눅스 커맨드 라인에서 실행되어 현재 환경에서 실행되는 파이썬 스크립트가 모듈을 가져 오는 곳을 찾을 수 있습니다 :
% pywhich
#! /usr/bin/env python def pywhich(module_name): module = __import__(module_name, globals(), locals(), [], -1) return module.__file__ if __name__ == "__main__": import sys print(pywhich(sys.argv[1]))
-
==============================
7.다른 대답은 괜찮습니다.하지만 가져온 모듈 내부에서 말하고 싶다면 다음과 같이하십시오.
다른 대답은 괜찮습니다.하지만 가져온 모듈 내부에서 말하고 싶다면 다음과 같이하십시오.
print "I was imported from %s" % __file__
from https://stackoverflow.com/questions/7150998/where-is-module-being-imported-from by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬에서의 엡실론 값 (0) | 2018.10.29 |
---|---|
[PYTHON] 파이썬 : 주어진 날짜로부터 주 데이터의 시작과 끝주기 (0) | 2018.10.29 |
[PYTHON] pandas 데이터 프레임의 열을 하나씩 변경 하시겠습니까? (0) | 2018.10.29 |
[PYTHON] 이 간단한 예제에서 datetime.strptime이 작동하지 않는 이유는 무엇입니까? (0) | 2018.10.29 |
[PYTHON] 장고 애플리케이션이 개발 서버에서 실행 중인지 여부를 어떻게 알 수 있습니까? (0) | 2018.10.29 |