728x90

Terraform Backend

Terraform Backend는 Terraform State 파일의 저장하는 위치를 정의합니다.
State는 Terraform에서 프로비저닝 결과를 추적하고 이후 프로비저닝 수행 시 비교하는 과정에 사용되므로, Terraform 사용 빈도와 대상의 규모가 커질수록 계획적인 관리가 요구 됩니다.

Backend 구성 목적

State Backend는 관리 / 공유 / 격리의 목적으로 사용됩니다

목적 내용
관리 State는 local 구성이 기본으로 현재 State인 terraform.tfstate와 이전 상태인 terraform.tfstate.backup만이 보관되므로 지속적인 State 백업을 위해서 Remote 저장소 필요 Remote 저장소에 state 파일을 관리하는 경우, 여러 사용자가 동시에 state 파일을 변경하는 경우 문제가 발생할 수 있으므로 동시에 같은 state 파일을 접근하는 것을 막아 의도치 않는 변경을 방지
공유 다수의 작업자가 동일한 State로 접근하여 프로비저닝하기 위한 공유 스토리지 필요
격리 State 파일에 저장될 수 있는 민감 데이터에 접근 권한을 환경별로 접근권한을 격리

사용 가능한 Backend

기본적으로 Terraform은 local상태를 디스크에 local 파일로 저장하는 Backend를 사용합니다.
AWS 리소스를 프로비저닝하는 경우 S3, Google Cloud의 경우 GCS가 적합 할 수 있습니다. HashiCorp는 Terraform Cloud를 통해 State 백엔드 기능을 제공합니다.

(기타)

  • Consul
  • Postgres Database (pg)

Terraform Workspace

Terraform Workspace는 State를 관리하는 단위입니다. 기본적으로 default Workspace가 생성됩니다.
terraform plan 을 새로운 Workspace에서 수행하면, Terraform은 다른 Workspace에 있는 리소스에 접근하지 않습니다.
기존에 있던 리소스를 관리하려면 Workspace를 전환한 후에 변경해야 합니다.

Terraform Backend 구현(AWS)

Terraform을 사용하여 인프라스트럭처를 관리할 때, Terraform의 상태 파일(backend)을 보관하는 AWS 계정과 실제 리소스가 프로비저닝되는 AWS 계정을 분리하는 것은 일반적인 보안 및 관리 방법입니다.
이러한 접근 방식은 Terraform 상태 파일의 보안을 강화하고, 팀 간의 접근 권한을 분리 하며, 여러 프로젝트 또는 환경 간의 충돌을 방지하는 데 도움이 됩니다.

AWS 인프라 관리 시, Multi-Account 관리를 통해 독립적인 환경을 구현하고 보안 및 관리 용이성을 가질 수 있도록 권고되고 있습니다.
Terraform Backend 환경은 공유 자원을 관리하는 Shared AWS Account에 관리 되며, 각 환경 및 Workspace별로 state를 저장 관리합니다.

+------------------+----------------+
| AWS Account Name | AWS Account ID |
+------------------+----------------+
| Shared           |  111111111111  |
| Dev              |  222222222222  |
| Qa               |  333333333333  |
| Prod             |  444444444444  |
| Test             |  555555555555  |
+------------------+----------------+

S3, DynamoDB 생성

상태를 Amazon S3의 버킷에 저장하고, Dynamo DB를 활용하여 Apply 시 State Locking을 통해 State의 일관성을 확보합니다.
실수로 삭제하거나 사람의 실수가 발생한 경우 상태를 복구할 수 있도록 버킷(Bucket)의 버전 관리를 활성화 합니다.

# Create S3 Bucket for Terraform State
resource "aws_s3_bucket" "terraform_state" {

    bucket = "tf-state-bucket" 


    tags = {
        Name        = "tf-state-bucket"
        Environment = ""    # Global, Shared, Dev, QA, Prod??
    }
}

# Provides a resource for controlling versioning on an S3 bucket
resource "aws_s3_bucket_versioning" "this" {
    bucket = aws_s3_bucket.terraform_state.id
    versioning_configuration {
      status = "Enabled"
    }
}


# Provides a S3 bucket server-side encryption.
resource "aws_s3_bucket_server_side_encryption_configuration" "this" {
  bucket = aws_s3_bucket.terraform_state.id

  rule {
    apply_server_side_encryption_by_default {
      sse_algorithm     = "AES256"      # (SSE-S3)
    }
  }
}


# Provision DynamoDB Table for state locking
resource "aws_dynamodb_table" "this" {
    name = "terraform-state-lock"
    hash_key = "LockID"
    billing_mode = "PAY_PER_REQUEST"

    attribute {
      name = "LockID"
      type = "S"
    }
}

State Configuration

State는 <workspace_key_prefix>/<workspace_name>/<key> 형식으로 저장됩니다.
Terraform Backend 환경은 공유 자원을 관리하는 shared-layer 에 관리되며, 각 환경 및 Workspace별로 state를 저장 관리합니다.

Terraform Backend Configuration S3 Backend Configuration

terraform{
    backend "s3" {
            bucket               = {S3 Bucket Name}                    # S3 Bucket Name
            key                  = "terraform.tfstate"                 # Path to tfstate in S3 Bucket (workspace/terraform.tfstate)
            region               = "ap-northeast-2"                    # Region Name
            dynamodb_table       = {DynamoDB Table Name}               # DynamoDB Table for state locking
            encrypt              = true                                # Enable Encyrtion state file
            workspace_key_prefix = {layer 이름}                         # default(env:)
            profile              = {backend-account-profile}           # backend가 위치한 AWS Profile
        }
}

# Configure the AWS Provider
provider "aws" {
    region = "ap-northeast-2"
    profile = {resource-account-profile}                               # 환경(Dev/Qa/Prod/Test)의 AWS Account Profile
}

Backend를 변경하고, terraform init 으로 초기화합니다.

yes 를 입력하면 local의 state가 지워지고, S3 로 Backend가 변경 되었음을 확인 할 수 있습니다.

728x90
반응형
728x90

Streamlit App Dockerize

Streamlit App은 다양한 클라우드 플랫폼(AWS, GCP, Google 등)에 배포가 가능하며, 앱을 컨테이너화 하여 여러 클라우드 플랫폼에 배포할 수 있다.

Prerequisites

실행할 App을 다운로드 합니다.
소스는 Streamlit에서 제공하는 샘플 Repository를 활용합니다.

git clone https://github.com/streamlit/streamlit-example.git .

Dockerfile 만들기

# Base 이미지
FROM python:3.12-slim

# 2. 작업 디렉토리를 /app으로 설정
WORKDIR /app

# 3. 현재 디렉토리의 requirements.txt 파일을 컨테이너의 /app으로 복사
COPY requirements.txt /app/

# 4. requirements.txt에 명시된 패키지 설치
RUN pip3 install -r requirements.txt

# 5. 실행할 streamlit_app.py를 컨테이너 /app으로 복사
COPY streamlit_app.py /app/

# 6. 컨테이너가 수신할 포트 오픈
EXPOSE 8501

# 7. 컨테이너 헬스 체크
HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health

#8. 실행될 컨테이너 구성
ENTRYPOINT [ "streamlit", "run", "streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0" ]

Streamlit 버전 1.10.0 이상에서는 Streamlit 앱을 Linux 배포판의 루트 디렉터리에서 실행할 수 없습니다. 따라서 WORKDIR은 루트가 아닌 별도 디렉토리를지정해야 합니다. (예. /app)
(참고) github Issue:5239

Docker image 빌드

생성한 Dockerfilestreamlit 이미지 이름으로 빌드합니다.

docker build -t streamlit .

docker images 로 생성된 이미지 를 확인합니다.

REPOSITORY  TAG       IMAGE ID       CREATED         SIZE
streamlit   latest    bb9ac485406e   2 minutes ago   634MB

Docker 컨테이너 실행

컨테이너의 포트 8501을 서버의 8501 포트에 게시합니다.

docker run -p 8501:8501 streamlit

출력된 URL로 접속합니다.

Collecting usage statistics. To deactivate, set browser.gatherUsageStats to False.

  You can now view your Streamlit app in your browser.

  URL: http://0.0.0.0:8501

(결과)


Reference

728x90
반응형
728x90

Streamlit

Streamlit은 데이터 애플리케이션을 빠르고 쉽게 만들 수 있도록 설계된 파이썬 기반의 오픈 소스 라이브러리입니다. 이 도구는 데이터 시각화와 머신 러닝 모델의 프로토타이핑 및 배포를 단순화하여 사용자가 복잡한 데이터 작업을 쉽게 수행할 수 있게 합니다.

Streamlit의 특징

  1. 코드 중심의 접근 방식: Streamlit 애플리케이션은 순수 파이썬 코드로 작성되므로 별도의 웹 프론트엔드 기술 없이도 데이터 앱을 만들 수 있습니다.
  2. 간편한 사용법: 몇 줄의 코드만으로도 인터랙티브한 요소(슬라이더, 버튼, 차트 등)를 추가할 수 있으며, 앱의 업데이트와 실행이 매우 빠릅니다.
  3. 빠른 프로토타이핑: 데이터 과학 프로젝트의 초기 아이디어를 빠르게 시각화하고 공유할 수 있어 프로토타이핑과 반복 개발 과정이 용이합니다.
  4. 확장성: Streamlit 앱은 컨테이너화하여 쉽게 배포할 수 있고, 다양한 데이터 소스와 라이브러리를 지원합니다.

장점

  1. 빠른 개발 속도: 복잡한 웹 앱을 빠르게 개발할 수 있으며, 데이터 과학자가 웹 개발에 대한 깊은 지식 없이도 사용할 수 있습니다.
  2. 쉬운 배포: Streamlit Sharing을 통해 GitHub에서 직접 앱을 호스팅하고 공유할 수 있습니다.
  3. 강력한 커뮤니티 지원: 오픈 소스 프로젝트로서 활발한 커뮤니티 지원과 지속적인 업데이트가 이루어집니다.
  4. 인터랙티비티: 사용자 입력에 반응하는 동적인 데이터 애플리케이션을 쉽게 만들 수 있습니다.

단점

  1. 고급 사용자 정의 제한: Streamlit은 사용의 용이성에 중점을 두기 때문에, 복잡한 사용자 인터페이스나 고도로 맞춤화된 앱 디자인을 구현하기 어려울 수 있습니다.
  2. 성능 문제: 대규모 데이터셋이나 복잡한 연산을 처리하는 앱의 경우, 성능 저하가 발생할 수 있습니다.
  3. 웹 개발 기능의 제한: 전통적인 웹 개발 툴셋에 비해 제공하는 웹 개발 기능이 제한적일 수 있습니다. 복잡한 웹 애플리케이션을 구축하려는 경우 다른 프레임워크를 고려해야 할 수도 있습니다.

Streamlit App 실행하기

# streamlit 라이브러리설치
pip install streamlit

# Streamlit으로 실행
streamlit run your_script.py

# Python 모듈로 실행 → Python으로 실행하는 경우, PyCharm과 같은 IDE를 구성할 때 유용할 수 있습니다.
python -m streamlit run your_script.py 

Data 표시방법

Streamlit에서 Data (tables, arrays, data frames 등)를 표시하는 방법은 magic CLI 와 st.write() 를 활용하는 방법이 있다.
st.write()는 텍스트에서 테이블까지 다 작성이 가능하다.

① magic command line

Streamlit은 변수나 데이터가 선언되어 있으면 자동으로 st.write()를 사용하여 앱을 빌드 합니다.

###
# first app
# DataFrame 으로 테이블을 생성
###

import streamlit as st
import pandas as pd

df = pd.DataFrame({
    'first column': [1, 2, 3, 4],
    'second column': [10, 20,30, 40]
})

df

② st.write()

st.write()는 텍스트, 데이터, 차트 등 arguments 에 따라 작성 할 수 있다.

import streamlit as st
import pandas as pd

st.write("Here's our first attempt at using data to create a table:")
st.write(pd.DataFrame({
    'first column': [1, 2, 3, 4],
    'second column': [10, 20,30, 40]
}))

데이터를 표시하는 데 사용할 수 있는 st.dataframe() 및 st.table()과 같은 함수를 사용하여 다양한 style을 적용 할 수 있다.

DataFrame에 Style 적용하기

① DataFrame에 Highligt 적용

import streamlit as st
import pandas as pd
import numpy as np

df = pd.DataFrame(
    np.random.randn(10, 20),    # 표준 정규분포 확률을 따르는 난수를 생성
    columns = ('col %d' % i for i in range(20))
)

# 열의 최대값에 하이라이트 표시
st.dataframe(df.style.highlight_max(axis=0))

(결과)

② 정적 테이블 생성 : st.table()

import streamlit as st
import pandas as pd
import numpy as np

df = pd.DataFrame(
    np.random.randn(10, 20),    # 표준 정규분포 확률을 따르는 난수를 생성
    columns = ('col %d' % i for i in range(20))
)

st.table(df)

③ 라인 차트 그리기 : st.line_chart()

import streamlit as st
import pandas as pd
import numpy as np

df = pd.DataFrame(
    np.random.randn(20, 3),    # 표준 정규분포 확률을 따르는 난수를 생성
    columns = ['a', 'b', 'c']
)

st.line_chart(df)

(결과)

⓸ 지도 그리기 : st.map()

Numpy를 사용하여 샘플 데이터를 생성하고 샌프란시스코 지도에 그려보겠습니다.

import streamlit as st
import pandas as pd
import numpy as np

df = pd.DataFrame(
    np.random.randn(1000, 2) / [50, 50] + [37.76, -122.4],
    columns=['lat', 'lon']
)

st.map(df)

(결과)

⑤ Widgets

st.slider(), st.button() , st.selectbox() 와 같이 위젯을 추가하여 표현할 수있다.

import streamlit as st
import pandas as pd
import numpy as np

st.markdown("### 1. slider widget")
x = st.slider('x')
st.write(x, '제곱은', x * x)


st.markdown("### 2. text input widget")
st.text_input("Your name", key="name")

# You can access the value at any point with:
st.session_state.name

st.markdown("### 3. checkbox widget")
if st.checkbox('Once you checked, dataframe is displyed'):
    chart_data = pd.DataFrame(
       np.random.randn(20, 3),
       columns=['a', 'b', 'c'])

    chart_data

st.markdown("### 4. selectbox widget")
df = pd.DataFrame({
    'first column': [1, 2, 3, 4],
    'second column': [10, 20, 30, 40]
    })

option = st.selectbox(
    'Which number do you like best?',
     df['first column'])

'You selected: ', option

⓺ Layout

import streamlit as st
import time

# 사이드바에 selctbox 구성하기
add_selectbox = st.sidebar.selectbox(
    'How would you like to be contacted?',
    ('Email', 'Home phone', 'Mobile phone')
)

# 사이드바에 slide 구성하기
add_slider = st.sidebar.slider(
    'Select a range of values',
    0.0, 100.0, (25.0, 75.0)
)

# 위젯을 나란히 배치하기
left_column, right_column = st.columns(2)
left_column.title('Left Column')
left_column.button('Press me')

right_column.title('Right Column')
with right_column:
    chosen = st.radio(
        'Sorting hat',
        ("Gryffindor", "Ravenclaw", "Hufflepuff", "Slytherin")
    )
    st.write(f"You are in {chosen} house!")

# Progress Bar
st.title('Progress Bar')
'Starting a long computation...'
latest_iteration = st.empty()
bar = st.progress(0)

for i in range(100):
    latest_iteration.text(f'Iteration {i+1}')
    bar.progress(i+1)
    time.sleep(0.1)

'...and now we\'re done!'

멀티페이지 App 만들기

Streamlit 1.10 이상 부터는 멀티 페이지를 구성할 수 있습니다.

서브페이지 구성 제약

  • Sub 페이지의 기본 구성은 pages 디렉토리에 위치해야 합니다.
  • 각 Streamlit 앱의 이름은 파일 이름에 따라 결정되므로 앱 이름을 변경하려면 파일 이름을 변경해야 합니다. (이모티콘 추가도 가능)
  • 각 Python 파일의 시작 부분에 숫자를 추가하여 페이지 순서를 지정할 수 있습니다. 파일 이름 앞에 1을 추가하면 Streamlit은 해당 파일을 목록의 첫 번째로 배치합니다.
  • 각 페이지에는 파일 이름으로 정의된 고유한 URL이 있습니다.

멀티페이지 구성

멀티페이지는 메인이 되는 Home.py 와 내부의 1_page_one.py, 2_Page_two.py, 3_🥉_three.py 3개의 서브페이지로 이동 되도록 구성합니다.

페이스 구성 소스트리

Home.py     # "streamlit run"으로 실행할 메인 파일
└─── pages/
    └─── 1_page_one.py 
    └─── 2_Page_two.py 
    └─── 3_🥉_three.py

① 기본 사이드바 탐색 숨기기

파일명을 기준으로 사이드바 메뉴를 별도 이름으로 지정할 수 있도록 변경합니다.
사용자 정의 탐색 메뉴를 생성할 때 를 사용하여 기본 사이드바 탐색을 숨겨야 합니다. 소스코드 루트 .streamlit/config.toml작업 디렉터리에 다음 파일을 추가합니다 .

[client]
showSidebarNavigation = false

② 사이드 바 메뉴 구성하기

메뉴트리 구성을 위해서는 각 Page 별로 메뉴를 동일하게 구성합니다.

# 공통 사이드바
st.sidebar.page_link("home.py", label="Home")
st.sidebar.page_link("pages/1_page_one.py", label="🥇 Page One")
st.sidebar.page_link("pages/2_Page_two.py", label="🥈 Page Two")
st.sidebar.page_link("pages/3_🥉_three.py", label="🥉 Page Three")
st.sidebar.markdown("---")

(결과)


Reference

728x90
반응형
728x90

파이썬에서 PDF 파일을 읽어와서 엑셀 파일로 변환하기 위해서는 몇 가지 라이브러리를 사용해야 합니다.
주로 PyPDF2 또는 pdfplumber를 사용하여 PDF 파일을 읽고, pandas를 사용하여 데이터를 가공하여 엑셀 파일로 저장할 수 있습니다.

pdfplumber 는 PDF 파일의 각 문자, 사각형, 선에 대한 상세한 정보를 제공하고 텍스트와 표를 쉽게 추출할 수 있는 라이브러리로, 데이터 분석 및 자동화 작업에 유용한 도구입니다.

https://github.com/jsvine/pdfplumber

1. 라이브러리 설치

먼저 pdfplumber 라이브러리를 설치합니다.(pip, anaconda, pipenv 환경 구성에 따라 설치 합니다.)

1. pip
pip install pdfplumber

2. anaconda
conda install -c conda-forge pdfplumber

3. pipenv
pipenv install pdfplumber

2. 테이블 추출하기

pdf 를 추출하기 위해 pdfplumber.open(file) 함수를 이용하여 pdf를 추출합니다.

import os  
import pdfplumber  
import pandas as pd  


file_path = os.getcwd()+"/contents/"  
pdf_name = "file.pdf"  
pdf_file_path = file_path + pdf_name  

# PDF 파일 열기  
pdf = pdfplumber.open(pdf_file_path)  

pages = pdf.pages  
print("총 페이지 수 : ", len(pages))  

tables = []  

# 1. 페이지에서 표 데이터 추출하기  
for each in pages:  
    table = each.extract_tables()  
    tables.extend(table)

3. 데이터 프레임으로 변환

# 2. 데이터 프레임으로 변환  
df = pd.DataFrame(tables[1:], columns=[tables[0]])  

# 3. 데이터프레임을 엑셀 파일로 저장  
excel_file_path = file_path + "file.xlsx"  
df.to_excel(excel_file_path, index=False, engine='openpyxl')

print(f'DataFrame이 {excel_file_path}에 저장 되었습니다.')

openpyxl 라이브러리가 설치되어 있지 않은 경우, 설치 하여 주세요.

728x90
반응형
728x90

Window에 설치된 Python 가상환경을 Linux로 옮겨보겠습니다.

Anaconda 가상환경은 운영체제끼리는 같아야 yml 기반으로 가상환경 생성 과정에서 에러가 생기지 않습니다.

  • 일부 OS 플랫폼에서는 사용할 수 없는 패키지가 있습니다.
    • Linux에서만 사용할 수 있는 패키지와 Windows에서만 사용할 수 있는 패키지가 있어 빌드버전은 OS에 따라 다를 수 있습니다.

Conda does not check architecture or dependencies when installing from a spec file. To ensure that the packages work correctly, make sure that the file was created from a working environment, and use it on the same architecture, operating system, and platform, such as linux-64 or osx-64.

1. 가상환경 Export

빌드 버전의 OS종속성을 제거하기 위해 --no-build 옵션을 사용하여 가상환경을 추출합니다.

conda env export -n "가상환경이름" --no-build > envrionment.yml

2. 가상환경 생성

Linux 환경에서 Anaconda 가상환경을 생성합니다.

conda create -n "가상환경이름" python=3.9

3. 가상환경 업데이트

생성한 가상환경을 추출한 environment.yml로 업데이트 해줍니다.

conda env update -n "가상환경 이름" -f environment.yml

가상환경 업데이트를 하면 다음과 같이 찾을 수 없는 패키지가 확인 됩니다.

Output:

Solving environment: failed

ResolvePackageNotFound:
  - vs2015_runtime=14.27.29016
  - wincertstore=0.2
  - vc=14.2

해당 항목들을 anaconda 패키지 리스트에 확이하면, 다음과 같이 Window OS 종속된 항목으로 Linux에 지원되지 않는 패키지 임을 확인 할 수 있습니다.

window에만 설치 가능한 패키지를 삭제하고 다시 가상환경을 업데이트 합니다.

conda env update -n "가상환경 이름" -f environment.yml

Reference

  1. https://stackoverflow.com/questions/55895751/using-a-conda-env-created-on-windows-for-linux
  2. https://ahelpme.com/software/anaconda/conda-export-environment-and-conda-import-environment/
  3. https://techhelpnotes.com/python-conda-environment-from-windows-to-linux/
  4. https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html
728x90
반응형
728x90

Window 환경의 CMD(명령 프롬프트)에서는 conda 명령어가 잘 동작하지만 powershell에서는 명령어가 동작하지 않는 문제가 있습니다.

아래와 같이 하면 PowerShell에서도 사용할 수 있습니다.

1. init powershell in Conda

# 1. ****init powershell in Conda****
conda init powershell

# 2. 현재 설정된 정책을 확인
Get-ExecutionPolicy

# Result
PS C:\WINDOWS\system32> Get-ExecutionPolicy
ByPass

2. 실행 정책 변경

아래 명령어로 정책을 변경합니다.

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Get-ExecutionPolicy 으로 Unrestricted 결과가 나오면 정책이 변경이 완료됩니다.

3. Restart Powershell

기타

PowerShll에서 (base) 를 지우고 싶은 경우,

conda config --set auto_activate_base false

PowerShll에서 (base) 를 나타나게 하고 싶은 경우,

conda config --set auto_activate_base true
728x90
반응형
728x90

과학용으로 국한되어 사용되고 있던 python의 발전으로 웹개발까지 여러 방면으로 활용되고 있습니다.
python IDE Tool로 가장 많이 활용되고 있는 Tool 중 하나는 Pycharm 입니다.

1. Pycharm 다운로드

pycharm은 무료버전인 community버전과, 유료인 Professional 버전이 있습니다.

Professional 버전을 다운로드 받습니다. 🌴Pycharm 다운로드

2. Pycharm 설치

설치 마법사에 따라 설치를 진행합니다. Next 를 클릭합니다.

설치 파일 경로를 지정하고 Next 를 클릭합니다.

옵션 값들은 모두 선택하고 Next 를 클릭합니다.

윈도우 시작메뉴 등록하고 Install 을 진행합니다.

모든 설치가 끝나면 윈도우를 재시작 합니다.

3. 라이선스 인증

Pycharm을 실행하고, 구매한 라이선스 인증 코드를 넣으면 설치가 완료됩니다.

4. Pycharm 컴파일 설정(Interpreter)

Setting 메뉴에서 Python Interpreter를 선택합니다.

Anaconda로 설정한 가상환경을 Interpreter로 설정합니다.
생성된 가상환경은 설치된 Anaconda폴더의 envs 폴더에 있습니다.

[참고] Anaconda Python 가상 환경 생성 하기

설정이 완료되면 Interpreter화면 가상환경으로 생성한 패키지 목록을 확인할 수 있습니다.

728x90
반응형
728x90

Anaconda 가상환경 생성

1. Aaconda 최신 버전으로 업데이트

가상환경 생성전에 Anaconda를 먼저 최신 버전으로 업데이트 합니다.

conda update conda

2. 설치된 가상 환경 목록 출력

conda env list

# conda environments:
#
base                  *  C:\Anaconda3

*표시는 현재 활성화된 가상환경을 의미

3. 새로운 가상 환경 생성

python 3.8 버전의 새로운 가상 환경을 생성합니다.

conda create --name [가상환경이름] python=3.8

conda create --name mypython python=3.8

4. 설치된 가상 환경 활성화 하기

conda activate [가상환경이름]

# To activate this environment, use
#
#     $ conda activate mypython

conda env list로 생성된 가상환경 리스트를 확인하고 *표시가 되어 있는 환경이 활성화된 가성환경입니다.

[참고] 가상환경 비활성화 하기

# To deactivate an active environment, use
#
#     $ conda deactivate
728x90
반응형
728x90

아나콘다(Anaconda)란

  • 아나콘다(Anaconda)는 수학과 과학 분야에서 사용되는 여러 패키지들을 묶어 놓은 파이썬 배포판으로서 SciPy, Numpy, Matplotlib, Pandas 등을 비롯한 많은 패키지들을 포함하고 있습니다.
  • Anaconda는 특히 최근에 데이타 사이언스와 머신 러닝 분야에서 파이썬을 사용하기 위해 기본적으로 설치하는 기본 환경 입니다.
  • 패키지 버전들은 conda를 통해서 관리됩니다.

아나콘다(Anaconda) 설치 파일 다운로드

다음 링크를 클릭하여 아나콘다 다운로드 페이지로 이동합니다.
https://www.anaconda.com/products/individual-d#Downloads

Anaconda Installers 항목에서 'Windows'의 파일을 다운로드 합니다.

아나콘다(Anaconda) 설치

다운로드 받은 설치 파일을 더블 클릭하여 설치를 시작합니다. 설치화면에서 Next 버튼을 클릭합니다.

라이선스 동의화면에서 I Agree 를 눌러 다음 설치과정을 진행합니다.

설치 대상은 모든 유저가 사용되는 것으로 선택합니다.

설치 경로를 지정합니다.

환경변수로 'Anaconda` 설치 환경도 추가합니다.

설치가 되면 Next 버튼을 클릭합니다.

PyCharm에 대한 광고화면에서 Next 버튼을 클릭합니다.

최종 설치 종료화면에서 체크박스는 해제 후 Finish를 클릭하여 설치를 완료합니다.

설치 확인

PowerShell을 열어서 conda -V 입력하여 설치 결과를 확인합니다.

Reference

  1. https://wikidocs.net/77491
  2. https://ko.wikipedia.org/wiki/%EC%95%84%EB%82%98%EC%BD%98%EB%8B%A4_(%ED%8C%8C%EC%9D%B4%EC%8D%AC_%EB%B0%B0%ED%8F%AC%ED%8C%90)
728x90
반응형

+ Recent posts