Development Tip

ImportError : mock이라는 모듈이 없습니다.

yourdevel 2020. 11. 1. 18:45
반응형

ImportError : mock이라는 모듈이 없습니다.


그래서 unittest.mock을 사용하여 단위 테스트에서 내 방법 중 일부를 모의하려고합니다. 나는한다:

from unittest.mock import MagicMock
f = open("data/static/mock_ffprobe_response")
subprocess.check_output = MagicMock(return_value=f.read())
f.close()

그러나 나는 얻는다 :

ImportError: No module named mock

나는 시도했다 :

pip install mock

여전히 작동하지 않습니다.


unittest내장 모듈입니다. mock외부 라이브러리입니다 (어쨌든 3.3 이전 베타). mock통해 설치 한 후 pip install사용하지 않고 가져옵니다.

from unittest.mock import MagicMock

그러나

from mock import MagicMock

편집 : 모듈 mock에 포함되었으며 unittest(Python3.3 이후) import unittest.mock.


Python 2.7의 경우 :

모의 설치 :

pip install mock

그런 다음 테스트 코드에서 다음 가져 오기를 사용합니다.

from mock import patch, MagicMock

Python 2와 Python 3을 모두 지원하려면 다음을 사용할 수도 있습니다.

import sys
if sys.version_info >= (3, 3):
    from unittest.mock import MagicMock
else:
    from mock import MagicMock

또는 가져 오지 않으려면 sys

try:
    from unittest.mock import MagicMock
except ImportError:
    from mock import MagicMock

귀하의 버전에 대해 http://hg.python.org/cpython/file/default/Lib/unittest/mock.py 로 이동 하여이 소스를 유리하게 사용하는 것이 좋습니다 .


왠지 import unittest.mock저를 위해 하지 않았어요.

from unittest import mock

실행할 때 가져 오기에 문제가 발생했습니다 pytest. pytest버전은 2.7 버전 python이고 내 버전은 virtualenv3.6 버전이었습니다 python. pip install내에서 a 수행 한 virtualenv다음 pytestfrom 을 사용하여 수정했습니다 env/bin/pytest.

참고 URL : https://stackoverflow.com/questions/11501520/importerror-no-module-named-mock

반응형