> 백엔드 개발 > 파이썬 튜토리얼 > 경로 문제로 인한 pytest의 'ImportError: No module names...' 문제를 해결하는 방법은 무엇입니까?

경로 문제로 인한 pytest의 'ImportError: No module names...' 문제를 해결하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-16 12:33:12
원래의
950명이 탐색했습니다.

How to Solve

pytest의 경로 문제: "ImportError: 이름이 지정된 모듈이 없습니다..."

pytest를 사용할 때 경로 문제로 인해 ImportError 예외가 발생하는 것이 일반적입니다. 이는 특히 다양한 운영 체제와 프로젝트 구조에서 널리 나타날 수 있습니다. 이 문제를 해결하고 잠재적인 솔루션을 살펴보겠습니다.

Conftest 솔루션(pytest < 7)

경로 문제를 해결하는 효과적인 방법 중 하나는 conftest.py 파일을 활용하는 것입니다. Pytest는 테스트 수집 중에 conftest 모듈을 검색하여 사용자 정의 후크 및 고정 장치를 수집합니다. 프로젝트의 루트 디렉터리(pytest를 실행하는 위치)에 빈 conftest.py 파일을 배치하면 pytest가 자동으로 상위 디렉터리를 sys.path에 추가하여 애플리케이션 모듈을 가져올 수 있게 만듭니다.

예:

다음과 같은 프로젝트 구조의 경우:

repo/
   |--app.py
   |--settings.py
   |--models.py
   |--tests/
          |--test_app.py
로그인 후 복사

간단히 빈 conftest.py 파일을 repo/ 디렉터리.

Pythonpath 설정(pytest >= 7)

최신 버전의 pytest(7 이상)의 경우 더 편리한 솔루션은 pythonpath 설정을 활용하는 것입니다. 이를 통해 pytest 구성을 통해 sys.path를 직접 수정할 수 있습니다. pyproject.toml 또는 pytest.ini 파일에 다음을 추가하세요.

[tool.pytest.ini_options]
pythonpath = ["."]
로그인 후 복사

이것은 사용자 정의 코드나 sys.path 조작이 필요하지 않은 더욱 깔끔한 접근 방식입니다.

기타 고려 사항

프로젝트 구조: conftest.py 파일의 위치 또는 pythonpath 구성 조정 프로젝트 구조를 기반으로 합니다. 예를 들어 일반적인 src 기반 레이아웃에서는 루트가 아닌 src 디렉터리에 conftest.py를 배치합니다.

src 레이아웃: PYTHONPATH에 src를 추가할 때는 주의하세요. 설치된 패키지가 아닌 저장소 코드를 테스트하게 되므로 src 레이아웃 사용의 이점이 약화될 수 있습니다.

위 내용은 경로 문제로 인한 pytest의 'ImportError: No module names...' 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿