"-m" 옵션을 사용하여 "라이브러리 모듈을 스크립트로 실행"한다는 것은 무엇을 의미합니까?
Python되어 있음)에 대해서는 디렉티브(에서)가 할 수 없습니다.python3 -m venv my_env
.
로는 " module 약자입니다. 이할 수 " library as script"가 을 실행하는 과 어떤 가 있는지 알 수 . 실제로는 이 개념을 이해할 수 없으며 명령을 실행하지 않으면 어떤 차이가 있는지 알 수 없습니다.-m
.
게다가 이것이 파이썬 3의 특징입니까?
Python 모듈은 Python이 찾을 수 있는 위치에 있는 스크립트 파일일 뿐입니다.모든 스크립트와 마찬가지로 위치를 알고 있는 경우에만 직접 실행할 수 있습니다.python /path/to/module.py
.
제대로 설계된 모듈은 일반적으로 설정 항목(예: 가져올 수 있는 기능 및 유형)을 제외하고는 아무 것도 하지 않지만 일반적으로 눈에 보이는 부작용은 없습니다.그래서 당신이 할 수 있는 거지import sys
아무 일도 일어나지 않습니다.
그러나 일부 모듈은 명령줄에서 실행할 때 유용한 정보를 제공할 수 있습니다.그 예는 다음과 같습니다.venv
하지만 또한http.server
또는idlelib
모두 다른 모듈에서 부작용 없이 가져올 수 있는 일반 모듈입니다.
직접때, 일을 예: 그러직실예모작두수업다행니합을면하행접나예(다▁but니:수합행:venv
을 설정합니다.http.server
하며, "는 HTTP 서버입니다.idlelib
IDLE(아이돌).과 같은검사를 .
if __name__ == '__main__':
print('Module is being executed directly, so do stuff here')
이는 스크립트/모듈이 직접 실행 중인지 또는 다른 모듈에서 가져올지 여부를 인식하는 특별한 방법입니다."무엇을 합니까?"라는 질문에 대해 자세히 알아볼 수 있습니다.
따라서 다음을 사용하여 모듈을 직접 실행할 수 있습니다.python /path/to/module.py
.그러나 이를 위해서는 모듈에 대한 전체 경로를 알아야 합니다.거기가 바로 그 곳입니다.-m
옵션이 적용됩니다.으로 으적로다음사용을을 하여 가져올 수 import modulename
사용할 수 있습니다.python -m modulename
모듈을 직접 실행할 수 있습니다.마치 당신이 그것의 전체 경로를 입력한 것처럼.
위의 예에서는 다음과 같이 사용할 수 있습니다.python -m venv
,python -m http.server
또는python -m idlelib
.
이것은 python3의 속성이 아닙니다.모듈러 스크립트의 경우 -m을 사용해야 합니다.예를 들어 다음과 같은 폴더 구조를 가지고 있다고 가정합니다.
|-HelloModule
|_ __init__.py
|_ hellomodule.py
|_ first_script.py
이제 hellomodule.py 에 클래스나 함수 또는 first_script.py 객체를 사용하는 경우 모듈로 hellomodule.py 을 실행해야 합니다. 이는 명령이 다음으로 변경됨을 의미합니다.
python -m HelloModule/hellomodule
HelloModule 디렉토리 외부에서 이 명령을 실행해야 합니다.
언급URL : https://stackoverflow.com/questions/46319694/what-does-it-mean-to-run-library-module-as-a-script-with-the-m-option
'itsource' 카테고리의 다른 글
'_eq__'을(를) 정의하는 유형은 해시할 수 없습니까? (0) | 2023.05.17 |
---|---|
jQuery를 사용하여 드롭다운 목록에 옵션을 추가하려면 어떻게 해야 합니까? (0) | 2023.05.17 |
GitHub repo에서 단일 폴더 또는 디렉토리 다운로드 (0) | 2023.05.17 |
Eclipse에서 특정 인터페이스를 구현하는 클래스를 찾는 방법은 무엇입니까? (0) | 2023.05.17 |
iPhone/iPad Simulator의 크기를 조정하는 방법은 무엇입니까? (0) | 2023.05.17 |