필자는 라즈베리파이 3B 버전을 사용하고 있다.
학교에서 대여받은 라즈베리파이 4B 버전에서 opencv가 설치가 되지 않아서, 오랜만에 라즈베리파이 3B 버전에서 테스트해보려고 켜보았다.
pip로 opencv를 설치하려는 도중 메모리가 부족하다는 현상을 마주치게 되었다.
pi@raspberrypi:~/prac $ pip install opencv-python
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting opencv-python
Downloading https://files.pythonhosted.org/packages/a1/d6/8422797e35f8814b1d9842530566a949d9b5850a466321a6c1d5a99055ee/opencv-python-4.3.0.38.tar.gz (88.0MB)
99% |████████████████████████████████| 88.0MB 6.2MB/s eta 0:00:01Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/_internal/cli/base_command.py", line 143, in main
status = self.run(options, args)
...
File "/usr/lib/python2.7/json/__init__.py", line 251, in dumps
sort_keys=sort_keys, **kw).encode(obj)
File "/usr/lib/python2.7/json/encoder.py", line 210, in encode
return ''.join(chunks)
MemoryError
어떻게 해결할까 하다가 gpt를 통해 답을 얻게 되었다.
바로 스왑 메모리를 늘리는 방법이다. 아래에서 스왑 메모리를 늘리는 방법을 소개하겠다.
# 스왑 파일 크기 확인
free -m
# 스왑 파일 크기 늘리기
sudo dphys-swapfile swapoff # 기존 스왑 비활성화
sudo vim /etc/dphys-swapfile # 설정 파일 편집
CONF_SWAPSIZE=100 # 기존 값
=> CONF_SWAPSIZE=1024 # 수정된 값
# 설정 변경 후 저장
sudo dphys-swapfile setup # 변경 사항 적용
sudo dphys-swapfile swapon # 스왑 활성화
# 메모리 부족 방지를 위해 Swap 우선 사용
sudo sysctl vm.swapiness=10
# 메모리가 부족한 경우 작은 크기의 pip 패키지로 나누어 설치
pip install --no-cache-dir opencv-python
위와 같은 과정을 통해 메모리 부족 현상은 해결할 수 있게 되었다.
그러나.. 새로운 문제에 직면하게 된다.
Command "/usr/bin/python -m pip install --ignore-installed \
--no-user --prefix /tmp/pip-build-env-NWlJMk --no-warn-script-location \
--no-binary :none: --only-binary :none: -i https://pypi.org/simple \
--extra-index-url https://www.piwheels.org/simple \
-- setuptools wheel scikit-build cmake pip \
"numpy==1.11.3; python_version=='3.5'" "numpy==1.13.3; \
python_version=='3.6'" "numpy==1.14.5; python_version=='3.7'" \
"numpy==1.17.3; python_version>='3.8'"" failed with error code 2 in None \
이러한 로그가 떴는데, 필자가 해석하기로는 단순한 파이썬과 모듈들의 버전 문제인거 같다.
하지만 필자가 사용하고 있는 Raspbian GNU/linux 10 (buster) 버전에서는 Python 3.7 버전이 최신 버전이라 단순하게 아래와 같이 실행해도 3.7이 설치가 된다.
sudo apt install python3 -y
그래서 또 gpt 에게 물어보았다.
curl https://pyenv.run | bash
exec $SHELL
pyenv install 3.9.9 # Example
pyenv global 3.9.9
python --version # Should show Python 3.9.9
위 명령어를 사용해도 통하지 않아서 다른 방법을 사용해보았다.
그냥 기존 pip에 3을 붙여서 pip3로 install을 시도했다.
pip3 install opencv-python --no-cache-dir
$ sudo ln -s /usr/share/pyshared/lsb_release.py /usr/local/lib/python3.9/site-packages/lsb_release.py
$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster'Computer Science' 카테고리의 다른 글
| docker 관련 명령어 정리 (0) | 2025.08.27 |
|---|---|
| 라즈베리파이 OpenCV 설치 오류 (0) | 2025.01.28 |
| [python] "telepot 모듈을 찾을 수 없음" 오류 기록 (0) | 2025.01.28 |