itsource

"-m" 옵션을 사용하여 "라이브러리 모듈을 스크립트로 실행"한다는 것은 무엇을 의미합니까?

mycopycode 2023. 5. 17. 22:57
반응형

"-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 서버입니다.idlelibIDLE(아이돌).과 같은검사를 .

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

반응형