참고)

vscode도 터미널을 사용하기 때문에 다음 방법을 따라해도 가상환경 생성이 가능합니다.

 

라즈베리파이 파이썬 가상환경 설치 방법

설치 환경 이전에는 기본 파이썬 버전을 원하는 버전의 파이썬으로 변경해서 사용했지만, 이제부터는 가상환경을 만들어서 사용하려고 합니다. 라즈베리파이에 파이썬 3.7이 아닌 다른 버전의

redfox.tistory.com

 

개요

한국투자증권에서 제공하는 주식 api를 이용해보려 했는데.. api 이용을 위해 요청한 파이썬 예제 코드를 실행해보려 했더니 에러 코드만 출력되는 겁니다.

다른 증권사들의 api의 경우 64비트 환경은 지원하지 않고 32비트 환경에서만 지원한다는 말이 생각나서 한국투자증권 측에 혹시 64비트 환경이 아닌 32비트 환경에서 api를 실행해야 하는지 문의해봤더니 역시나 32비트 환경에서 eFriend Expert Open API를 이용해야 한다는 답변을 받을 수 있었습니다.

한 가지 다행스러운 점은 기존에 설치된 64비트 환경을 제거하지 않아도 가상 환경을 만들어 32비트 환경을 만들 수 있다는 것이었습니다.
그래서 Visual Studio Code(VScode)에서 32비트(x86)용 파이썬을 사용하기 위한 가상환경을 만들어보는데.. 대체가 아무리 구글에 검색해도 나오는 문서들을 아나콘다(Anaconda) 아니면 파이참(PyCharm)에서 가상 환경을 만드는 방법을 다루는 문서들만 잔뜩 나오는 겁니다..

어찌저찌 VScode에서 가상환경을 만드는 방법을 찾아서 따라해보는데 가상 환경을 만들어도 32비트가 아닌 64비트 환경이 만들어지는 바람에 이걸 해결하기 위해 얼마나 많은 시간을 들였는지 모릅니다. ㅜㅜ

가상환경을 만들기 위해 나름 고생을 했기 때문에 해결 과정을 기록으로 남깁니다.

VScode에서 파이썬 32비트 사용을 위한 가상환경 만들기

본 기록은 윈도우10 64비트 환경을 기준으로 합니다.

32비트용 파이썬 설치

32비트용 파이썬을 위한 가상환경을 만드는 것이기 때문에 당연히 32비트용 파이썬이 설치되어 있어야 합니다.
아래 파이썬 공식 사이트에 접속해서 자신이 사용하고 있는 운영체제에 맞는 파이썬을 다운로드해 설치할 수 있습니다.

 

파이썬 공식 사이트

www.python.org/

 

윈도우즈용 파이썬 다운로드 페이지

www.python.org/downloads/windows/

 

제 경우엔 기존에 사용하던 파이썬 3.8.7 버전이 3.8.8 버전으로 업데이트되어있어 64비트 파이썬과 32비트 파이썬 모두 3.8.8 버전으로 업그레이드 및 설치를 진행했습니다.

32비트용 파이썬을 설치할 때 주의할 것이 있는데, 일반 [설치]가 아닌, [사용자 정의 설치(Customize installation)] 옵션을 선택한 다음, [Install for all users]를 선택해 설치해야 합니다.
그냥 설치를 누르면 개인 사용자만 사용할 수 있도록 사용자 폴더에 32비트 파이썬이 설치되는데, 이 경우 가상 환경을 만들어도 32비트 환경이 만들어지지 않습니다.
이걸 몰라서 이틀을 꼬박 날렸습니다. ㅜㅜ

 

VScode에서 가상환경 만들기

32비트 파이썬을 설치했다면, 32비트 파이썬을 사용하기 위한 가상환경을 만들기 위해 VScode를 실행합니다.
제가 설치한 VScode에서 열리는 터미널(TERMINAL)의 1번 옵션을 선택하면 Powershell이기 때문에 cmd가 아닌 Powershell 명령어를 기준으로 합니다.

 

먼저 왼쪽 하단에서 확인할 수 있는 인터프리터 언어를 파이썬 32비트로 변경합니다.
왼쪽 하단의 사용 중인 인터프리터 언어를 클릭하면 인터프리터 언어를 변경할 수 있습니다.
인터프리터 언어가 선택되어있지 않다면, [Ctrl + Shift + P] 단축키를 눌러 커맨드 입력창을 연 다음 다음 명령어를 입력하면 인터프리터 언어를 선택할 수 있습니다.

Python: Select Interpreter

 

터미널이 열려있지 않다면 터미널을 열어줍니다.
터미널의 단축키는 [Ctrl + Shift + `] 또는 [Ctrl + `] 입니다.


터미널에 다음 명령어를 입력해 가상환경을 생성합니다.
제 경우엔 가상환경의 이름을 venv32bit로 만들었습니다.

python -m venv venv32bit
# python -m venv {환경 이름}

잠시 기다린 다음 명령을 실행한 위를 확인해보면 환경 이름으로 설정한 이름의 폴더가 생성되어있는 것을 알 수 있습니다.

 

가상 환경을 실행하기 위해서는 가상환경 폴더 안의 Scripts 폴더 안에 있는 Activate.ps1을 실행해줘야 합니다.(파워쉘 기준)
cmd 환경이라면 activate.bat 파일을 실행하면 됩니다.

 

가상 환경을 실행하기 위해 다음 명령어를 입력합니다.

venv/Scripts/Activate.ps1
# {환경 이름}/Scripts/Activate.ps1

또는

cd venv/Scripts
# cd {환경 이름}/Scripts
.\Activate.ps1

 

그런데, 다음과 같은 에러 메시지가 노출될 수 있습니다.

 

ps1 파일에 서명이 안되어있기 때문인데, ps1 파일을 실행하기 위해서는 ExcutionPolicy 설정을 변경해주어야 합니다.
해당 설정을 확인하는 명령어와, 설정을 변경하는 명령어는 다음과 같습니다.

# 설정 확인
Get-ExecutionPolicy

# 설정 변경
Set-ExecutionPolicy RemoteSigned

 

Set ExcutionPolicy 명령을 입력했을 때, 다음과 같은 에러 메시지가 노출될 수 있습니다.

Set-ExecutionPolicy : 'ExecutionPolicy' 매개 변수를 바인딩할 수 없습니다. 값 "RemoteSighned"을(를) "Microsoft.PowerShell.ExecutionPo
licy" 유형으로 변환할 수 없습니다. 오류: "식별자 이름 RemoteSighned을(를) 유효한 열거자 이름과 일치시킬 수 없습니다. 다음 열거자 이
름 중 하나를 지정한 후 다시 시도하십시오.
Unrestricted, RemoteSigned, AllSigned, Restricted, Default, Bypass, Undefined"
위치 줄:1 문자:21
+ Set-ExecutionPolicy RemoteSighned
+                     ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Set-ExecutionPolicy], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand

 

해당 명령을 수행하기 위해서는 관리자 권한이 필요한데, 일반적으로 실행한 프로그램에서는 관리자 권한이 없기 때문에 발생하는 에러입니다.
해당 에러가 나타난다면 VScode를 종료한 다음, VScode 아이콘을 우클릭 - 관리자 권한으로 실행을 선택해주거나, [Ctrl + Shift + Enter] 또는 [Ctrl + Shift + 더블 클릭] 등으로 실행해서 VScode를 관리자 권한으로 실행해준 다음 Set ExcutionPolicy명령을입력해주면됩니다.

 

 

Set ExcutionPolicy 명령이 정상적으로 동작했다면 Get-ExcutionPolicy 명령을 다시 실행하면 AllSigned에서 REmmoteSigned로 출력값이 변경된 것을 확인할 수 있습니다.

 

이제 다시 Activate.ps1 파일을 실행해주면 다음 사진과 같이 좌측에 (venv32bit)라는 가상환경 명칭이 나타나는 것을 확인할 수 있습니다.

 

가상 환경에서 pip list를 입력해 설치된 pip 모듈 리스트를 호출하면 기존에 설치해두었던 모듈들이 나타나지 않습니다.
가상환경은 제일 처음 파이썬을 설치했을 때와 마찬가지이기때문에 가상환경에서 사용할 모듈을 가상환경에 따로 설치해주어야 합니다.

 

다음 사진과 같이 VScode좌측 하단에 노출되는 사용 중인 인터프리터에 [Python {버전} 32-bit ('{가상환경명}':venv]가 노출되지 않는다면 인터프리터를 지정해주어야 합니다.

 

좌측 하단 인터프리터를 클릭 - Enter interpreter paht... - Find... 를 선택한 다음 가상환경 폴더 - Scripts 폴더에 있는 python.exe 파일을 선택해줍니다.

 

 

그 다음 PyQt5를 설치하고 pip를 업데이트 한 다음 증권사 api 에제 코드를 작동하면.. 다음과 같이 정상적으로 작동하는 것을 확인할 수 있습니다.

 

가상환경 빠져나오기

다른 사람들은 다음 명령어를 입력하면 가상 환경을 종료할 수 있다고 하는데.. cmd 환경이 아니어서 그런지 이상하게 저는 그렇지 않았습니다.

venv32bit/Scripts/deactivate.bat
# {가상환경 폴더 이름}/Scripts/deactivate.bat

또는

venv32bit/Scripts/deactivate
# {가상환경 폴더 이름}/Scripts/deactivate

가상환경을 종료하기 위해서는 deactivate.bat 파일이 있는 폴더로 진입한 다음 해당 파일을 실행해주거나, VScode 메뉴바에 있는 File - New Window로 새로운 VScode 창을 띄워주면 가상환경이 종료됩니다.

cd venv32bit/Scripts
# {가상환경 폴더 이름}/Scripts

deactibate

  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기