파이참 파일 확장자 타입 변경하기

파이참에서 파일을 만들다보면 확장자명을 지정하지 않고 파일을 만드면서 text 형식으로 지정하는 경우가 있다.
보통의 경우 auto-detected이지만, 잘못 지정하면 확장자를 바꿔도 기존에 지정한 형식으로 읽어온다.
이 경우 지정한 형식을 제거해주면 된다.

Setting - File Types

파이참 가상환경 생성

가상환경

라이브러리를 불러오다보면 의존성 패키지의 과거 버전이 필요할 때가 있다.
모든 패키지에 대응할 수는 없으니 파이썬이나 해당 패키지를 재설치 혹은 Downgrade를 진행해야 할 것이다.
위 문제를 해결할 수 있는 방법이 여러 파이썬을 생성해 각각 환경에 맞는 패키지를 설치해 따로 불러오는 방법으로 가상환경이라 한다.

가상환경 생성

설정에서 생성하기

프로젝트를 생성하고 코드 작업을 진행하다 버전 에러가 났을 때,

Files - Settings - Project:

- Python Interpreter 에서 Add... 를 눌러 추가할 수 있다.

가장 기본적인 Venv를 설치할 수 있다. anaconda 설치가 됐다면 conda 환경도 추가할 수 있지만, 기본적인 파이썬 Venv 설치를 진행할 예정.
파이썬 exe 경로와 가상환경 dir 경로를 잘 확인해주자

프로젝트와 같이 생성하기

보통의 경우는 파이참에서 프로젝트를 생성하며 가상환경 설치를 진행할 것이다.

터미널에서 생성하기

파이참같은 개발환경을 사용하지 못하고 리눅스 등 환경의 터미널에서 생성해야할 경우는 venv — 가상 환경 생성를 참조한다.

패키지 설치

파이썬 가상환경을 생성했다면 사용할 패키지를 설치하면 된다.

정상적으로 설치했다면 문제 없겠지만 어느 파이썬을 참조하고 있는지 터미널에서 확인해보자.

1
2
3
4
 # window
$ where python
# mac, linux .ect
$ which python

가상환경을 참조하지 못하고 있다면 아래 명령어로 (venv) 강제 진입해보자.

1
2
3
4
 # window
$ source ./venv/Scripts/activate
# mac, linux .ect
$ source ./venv/bin/activate

설정 interpreter에서

파이참 같은 경우엔 Python Interpreter - install 버튼을 선택해 설치할 패키지와 버전을 선택할 수 있다.

requirements.txt

버전을 일일히 기억하고 있기도 뭐하고 설치할 패키지가 많다면 하나하나 설치하는 것도 일이다.

pycaret같은 패키지를 보면 requirements.txt로 관리한다.

텍스트 파일에 원하는 패키지와 버전을 입력했다면 pip 명령어로 한번에 설치를 진행할 수 있다.

1
$ pip install -r requirements.txt

Jupyter ipynb에서 가상환경 사용

가상환경 이름과 표시될 이름을 설정해준다.

난 각각

과 <파이썬버전(dir 이름)>으로 설정했다.

1
ipython kernel install --user --name python_ml --display-name "Python3(python_ml)"

정상적으로 등록됐다면 jupyter 환경으로 접속하면 된다.

1
2
$ jupyter lab
$ jupyter notebook

주피터 랩을 추천한다.

외부링크

파이참, 파이썬 인코딩 설정

어떤 작업환경을 사용하든 가능하다면 UTF-8 포멧으로 작업하는걸 추천한다.

pycharm에서도 인코딩 방식 변경을 지원함.

file - setting - editor - file encodings에서 Global Encoding이 UTF-8이 아니라면 변경해주자.

프로젝트 인코딩과 속성 파일 인코딩 방식은 OS가 윈도우라면 새 프로젝트를 열 때 마다 기본값으로 돌아갈 것이다.
필요한 설정이 아니라면 크게 신경쓰진 말자.

encoding

※ 코드 파일 맨 윗단에 아래 주석을 추가하면 자동 UTF-8 인코딩 해준다.

1
# -*- coding: utf-8 -*-

pycharm에서 UTF-8로 변경했고 python 3++를 사용중이기에 추가할 필요는 없지만 작업 파일을 공유하거나 먼 미래에 열어볼 나를 위해 추가한다.