본문 바로가기
Cording/주식거래자동화

주식 거래 자동화] Open API 컨트롤을 위한 PyQt5 패키지 설치 / Error 오류 해결

by €€£¥ 2022. 12. 29.

키움 증권 API를 자동으로 제어하기 위해 Windows 내 응용프로그램을 제어할 수 있는 QAxWidget이라는 클래스를 가지고 있는 PyQt5 패키기의 설치가 필요하다. 주식 거래 자동화를 위해 생성한 가상환경에 PyQt5 패키지를 설치해 보자.

 

1. Anaconda Prompt (아나콘다 프롬프트)를 실행 후, 해당 가상환경을 활성화

아나콘다 프롬프트를 실행하고 아래와 같이 기존 주식 자동화를 위해 생성한 32bit 파이썬 가상환경을 활성화해 준다. 가상환경의 이름이 기억나지 않는다면 'conda env list' 명령어로 확인하면 된다.

conda env list  # 설치되어 있는 가상환경의 목록을 보여준다.
conda activate "가상환경 이름"  # '해당 가상환경'을 활성화시켜준다.

anaconda-prompt-env-activate
anaconda-prompt-activate-env

 

2. PyQt5 패키지 설치 하기

가상환경이 활성화되었다면 PyQt5를 설치하자. 아래의 설치 명령어를 사용하면 되지만, 현시점(2022년 12월)에서는 버전 에러(Version Error)가 발생한다.

pip install pyqt5  # PyQt5 패키지 설치

anaconda-prompt-install
anaconda-prompt-install-pyqt5

 

3. PyQt5 패키지 설치 오류 해결 (Version Error)

위의 PyQt5 설치 시 발생한 오류 내용이다. 정확히 뭐가 문제인지는 잘 모르겠지만 아무튼 Spyder 패키지와 버전 충돌이 있는 모양이다. 

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
spyder 5.1.5 requires pyqtwebengine<5.13, which is not installed. 
spyder 5.1.5 requires pyqt5<5.13, but you have pyqt5 5.15.7 which is incompatible.

필자와 같은 코알못은 이런 경우 일단 설치 전으로 되돌아 갔다가 버전에 맞는 PyQt5를 재설치하는 방법을 선택했다. 아래의 uninstall 명령어로 설치한 PyQt5를 제거한다.

pip uninstall pyqt5  # PyQt5 패키지 언인스톨

anaconda-prompt-uninstall
anaconda-prompt-uninstall-pyqt5

PyQt5를 버전 출동이 없도록 재설치해주어야 하는데 정확히 어떤 버전으로 설치해줘야 하는지는 모르겠다. 위의 에러메시지에서 'spyder 5.1.5 requires pyqtwebengine<5.13' 라고 5.13 이하의 버전이 필요하다고 하니 일단 PyQt5를 5.13 버전으로 설치하는 것을 시도해 보았다. 

pip install pyqt5==5.13   # PyQt5를 5.13 version으로 인스톨

anaconda-prompt-reinstall
anaconda-prompt-version-downgrade

다시 한번 위의 이미지와 같이 에러가 발생하였다. 하지만 에러 내용이 다르다. 이번에는 내가 요청하 5.13 version의 PyQt5가 존재하지 않으니 다른 버전으로 설치하라는 내용이다.

기왕이면 애당초 첫 에러에서 버전 정보를 같이 알려줬으면 두 번 일 안 할 텐 데라는 불만도 살짝 생겼지만 그래도 사용가능한 버전의 목록을 보여주다니 꽤나 친절하다.

ERROR: Could not find a version that satisfies the requirement pyqt5==5.13 (from versions: 5.12.3, 5.14.0, 5.14.1, 5.14.2, 5.15.0, 5.15.1, 5.15.2, 5.15.3, 5.15.4, 5.15.5, 5.15.6, 5.15.7)
ERROR: No matching distribution found for pyqt5==5.13

PyQt5를 5.13 이하이면서 실제 하는 버전으로 재설치해 준다. ver. 5.12.3이 조건에 맞는 버전이므로 설치해준다. 추가로 PyQt5 Webengine 역시 같은 에러가 발생하였으므로 PyQt5 Web Engine 도 조건에 맞는 버전으로 재설치해주었다.

pip install pyqt5==5.12.3   # PyQt5 를 5.12.3 version 으로 인스톨
pip install pyqtwebengine==5.12.1   # PyQtwebengine 을 5.12.1 version 으로 인스톨

anaconda-prompt-reinstall
anaconda-prompt-version-downgrade

댓글