python f-string SyntaxError: invalid syntax

x·2022년 8월 3일
0

상황

프로젝트를 fork해서 명령어를 입력했는데 f-string에서 에러가 났다.

python 버전을 확인해보니 2.7이었고 hummingbot 가상환경은 3.8이었다.

처음에는 conda 버전이 낮아서 그런가 싶어서 pyenv로 3.9 환경을 사용했는데 여전히 문제가 있었다.(anaconda에서 파이썬 버전까지 관리하므로 이렇게 해봤자 올바른 해결방법이 아님)

원인

f-string은 3.6부터 지원하기 때문에 터미널에서 스크립트를 실행했을 때 문제가 발생함
python 가상환경이 hummingbot(python3.8)으로 제대로 지정되지 않음
iterm2에서는 스크립트가 잘 실행되었으나 vscode terminal에서 문제가 발생함

아래처럼 .condarc 파일에 auto_activate_base가 true면 터미널을 켤 때마다 자동으로 base가 가상환경으로 지정됨. 그런데 기본 python 환경이 3.x가 아니라 2.x라서 문제가 생겼음

해결

vscode terminal에서 hummingbot 가상환경이 아닌 base 환경이 뜨기 때문에 이후 conda activate hummingbot를 해줘도 base 환경이 유지되었다. conda deactivate를 해서 base 환경을 내린 다음 conda activate hummingbot를 실행해야 했다.
저렇게 하면 불편하기 때문에 base 환경을 자동으로 띄우지 않기 위해 .condarc 파일에서 auto_activate_base: false로 변경했다.

vscode select interpreter에서 아래처럼 'hummingbot': conda를 지정했다.

이렇게 base -> hummingbot으로 환경이 지정된다

컴파일 및 실행 성공

기타

터미널에서 기본 글로벌 파이썬 버전을 2.x대신 3.9로 만들기 위해 pyenv로 3.9 환경을 구성하고 .zshrc 파일에 환경변수를 설정했다

0개의 댓글