>백엔드 개발 >파이썬 튜토리얼 >Python에서 `-m` 스위치는 무엇을 합니까?

Python에서 `-m` 스위치는 무엇을 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-29 03:15:10783검색

What Does the `-m` Switch Do in Python?

-m 스위치의 역할은 무엇인가요?

소개

-m 옵션은 Python의 기능을 확장하여 모듈 실행 및 개발의 다양성을 가능하게 합니다. 세 가지 주요 역할을 수행합니다:

1. 모듈 이름별 모듈 실행

python -m python 에 대한 대안을 제공합니다. 모듈 실행용. 모듈 이름을 파일 이름에 매핑하는 Python의 기능을 사용하므로 정확한 위치를 모르더라도 모듈을 실행하는 데 편리합니다.

2. 향상된 모듈 경로 확인

-m을 사용하면 현재 작업 디렉터리가 sys.path에 추가됩니다. 이를 통해 현재 디렉터리에서 모듈을 가져올 수 있으므로 설치 없이 로컬 패키지를 실행할 수 있습니다.

3. 상대 및 절대 가져오기 지원

-m은 모듈 실행 시 절대 및 상대 가져오기를 모두 처리합니다. 이를 통해 개발자는 모듈이 명령줄에서 실행되거나 import 문을 통해 실행되는지에 관계없이 동일한 방식으로 가져오기를 사용할 수 있습니다.

역사적 개발

처음에는 - m은 최상위 모듈 이름만 지원합니다. PEP 338에서는 하위 모듈과 상위 패키지 초기화를 포함하도록 확장되었습니다. 마지막으로 PEP 366은 명시적 상대 가져오기에 대한 지원을 도입했습니다.

사용 사례

-m은 두 가지 시나리오에서 탁월합니다.

  • 다음을 사용하여 모듈 실행 알 수 없는 파일 이름(예: 표준 라이브러리 또는 타사 모듈).
  • 설치 없이 절대 또는 상대 가져오기로 로컬 패키지 실행(sys.path에 현재 디렉토리를 추가하면 가능).

제한 사항

-m에는 한 가지 중요한 제한이 있습니다. Python 코드 모듈(*.py)만 실행할 수 있습니다. -m을 사용하면 C 컴파일 코드 모듈이 성공적으로 실행되지 않습니다.

다른 모듈 실행 방법과 비교

'__main__'
실행 방법 sys.path 수정
Execution Method sys.path Modification name Setting package Setting init Evaluation main Evaluation
Import Statement No change Absolute modulename Parent package Yes (packages only) No (packages only)
Command Line with Filename Final directory of filename '__main__' None No (all modules) Yes (package modules)
Command Line with Modulename (-m) Current directory '__main__' Parent package Yes (packages only) Yes (package modules)
이름 설정
패키지 설정 init 평가 main 평가
가져오기 설명 변경 없음 절대 모듈 이름 상위 패키지 예(패키지만) 아니요(패키지만)
명령줄 파일 이름 포함 파일 이름의 최종 디렉터리 '__main__' 없음 아니요(모두 모듈) 예(패키지 모듈)
모듈 이름이 포함된 명령줄(-m) 현재 디렉터리상위 패키지 예(패키지만) 예(패키지 모듈)

결론

-m 스위치는 개발자에게 모듈 실행 및 개발을 위한 다양한 도구를 제공합니다. 모듈 조회에 유연성을 제공하고 동적 경로 확인을 지원하며 복잡한 Python 코드의 원활한 실행을 촉진합니다.

위 내용은 Python에서 `-m` 스위치는 무엇을 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.