728x90
반응형

 티스토리 

 

파이썬에서 임의의 숫자 생성하기

파이썬은 random 모듈을 사용하여 임의의 숫자를 생성하는 강력한 기능을 제공합니다. 이 모듈은 의사 난수 생성기를 포함하고 있어 다양한 용도로 활용할 수 있습니다.

파이썬의 random 모듈은 난수 생성과 관련된 다양한 기능을 제공합니다. 이 모듈은 의사 난수 생성기를 기반으로 하며, 여러 상황에서 활용됩니다. 이번 글에서는 random 모듈의 몇 가지 주요 기능을 살펴보겠습니다.

1.코드 리뷰 -

random 모듈 기본 사용법

 random 모듈은 여러 함수를 제공하여 다양한 형태의 난수를 생성할 수 있습니다. 가장 기본적인 함수는 random() 입니다.

 파이썬 공식문서:  https://docs.python.org/ko/3/library/random.html

import random

# 0에서 1 사이의 임의의 부동 소수점 수 생성
random_number = random.random()
print(f'임의의 숫자: {random_number}')
import random

# 1부터 100까지의 임의의 정수를 100번 생성하고 출력
for _ in range(100):
    random_integer = random.randint(1, 100)
    print(random_integer)

변수명을 조금 더 명확하게 지으면 코드의 가독성이 향상될 수 있습니다. 예를 들어, random_number 대신에 random_integer와 같이 명확한 이름을 사용

range(100) 대신에 _ in range(100)을 사용하여 반복 변수를 사용하지 않을 경우 코드를 더 간결하게 만들 수 있습니다.

이렇게 하면 변수명이 명확해지고, 불필요한 반복 변수를 사용하지 않아 코드가 더 간결해집니다. 또한 주석을 추가하여 코드의 목적을 설명

 

2.코드 리뷰 - randint(a, b): 범위 지정된 정수 생성

randint(a, b) 함수는 a와 b 사이(양 끝 포함)의 정수를 생성합니다. 이는 주로 특정 범위에서 난수를 뽑아야 할 때 활용됩니다.

import random

random_integer = random.randint(1, 100)
print(f'1에서 100 사이의 난수: {random_integer}')

 

3.코드 리뷰 - choice(seq): 시퀀스에서 임의의 항목 선택

choice(seq) 함수는 주어진 시퀀스에서 임의의 항목을 선택합니다. 이 함수는 리스트, 튜플, 문자열 등 다양한 시퀀스 타입에서 사용될 수 있습니다.

import random

fruits = ['딸기', '바나나', '사과', '포도']
random_fruit = random.choice(fruits)
print(f'임의의 과일 선택: {random_fruit}')

 

4.코드 리뷰 - shuffle(seq): 시퀀스의 항목 순서 섞기

shuffle(seq) 함수는 주어진 시퀀스의 항목 순서를 무작위로 섞습니다. 주로 리스트 등의 순서가 중요한 데이터를 섞을 때 활용됩니다.

import random

cards = ['하트', '다이아몬드', '스페이드', '클로버']
random.shuffle(cards)
print(f'섞인 카드: {cards}')

 

5.코드 리뷰 - seed(x): 시드 설정

seed(x) 함수는 난수 생성의 시드를 설정합니다. 동일한 시드를 가진 경우, 같은 난수 시퀀스가 생성됩니다. 따라서 시드를 설정하여 난수 생성을 재현 가능하게 만들 수 있습니다.

import random

random.seed(42)
random_number_1 = random.random()
random_number_2 = random.random()

print(f'첫 번째 난수: {random_number_1}')
print(f'두 번째 난수: {random_number_2}')

 

마무리

- 이번 포스팅은 랜덤 숫자 생성 'random' 모듈에 대해 알아봤습니다.

random 모듈은 파이썬에서 난수 생성과 관련된 다양한 기능을 제공합니다. 이러한 기능들은 데이터 시뮬레이션, 게임 개발, 테스트 데이터 생성 등 다양한 분야에서 유용하게 사용됩니다. 파이썬의 random 모듈을 통해 다양한 확률적인 요소를 프로그램에 효과적으로 통합할 수 있습니다. 이상으로 random 모듈의 주요 기능에 대한 간략한 소개를 마칩니다. 즐거운 코딩 되세요!

 

궁금한 사항은 댓글을 통해서 남겨 주시면 답변 드리겠습니다.
감사합니다.

 

 

728x90
반응형
728x90
반응형

 티스토리 

 

우선순위 큐(heapq) 사용하기

우선순위 큐는 데이터를 저장하고 추출할 때 항목들에 우선순위를 부여하여 관리하는 자료구조입니다. 파이썬에서는 heapq 모듈을 사용하여 우선순위 큐를 구현할 수 있습니다. 아래는 파이썬의 우선순위 큐에 대한 간단한 설명과 사용 예시입니다.

1. 코드리뷰

 

import heapq

# 우선순위 큐를 위한 리스트 변수 생성
priority_queue = []

# 항목 추가
heapq.heappush(priority_queue, (3, 'Code'))
heapq.heappush(priority_queue, (1, 'Cost'))
heapq.heappush(priority_queue, (2, 'Zero'))
heapq.heappush(priority_queue, (4, 'Life'))

# 항목 추출
while priority_queue:
    priority, item = heapq.heappop(priority_queue)
    print(f'Priority: {priority}, Item: {item}')

결과 :

Priority: 1, Item: Cost
Priority: 2, Item: Zero
Priority: 3, Item: Code
Priority: 4, Item: Life

 

우선순위 큐의 특징:

각 항목은 우선순위를 가지고 있으며, 이 우선순위에 따라 항목이 관리됩니다.
낮은 우선순위가 높은 우선순위보다 먼저 나옵니다. (오름차순)
heapq 모듈:

heapq 모듈은 최소 힙(min heap)을 제공하여 우선순위 큐를 구현합니다.
최소 힙은 가장 작은 값이 루트에 위치하며, 부모 노드의 값이 항상 자식 노드의 값보다 작습니다.
사용 예시:

우선순위 큐를 사용하려면 리스트를 힙으로 변환하고, heappush 및 heappop 함수를 사용하여 항목을 추가하거나 추출할 수 있습니다.

2. 코드 최적화 

 

최소 힙을 활용한 초기화:

heapq.heapify 함수를 사용하여 리스트를 최소 힙으로 초기화할 수 있습니다.

priority_queue = [(3, 'apple'), (1, 'banana'), (2, 'orange')]
heapq.heapify(priority_queue)

이렇게 하면 heappush 함수를 여러 번 호출하는 대신 리스트를 최소 힙으로 만들 수 있습니다.

수정한 코드 전체 내용

import heapq

# 최소 힙으로 초기화
priority_queue = [(3, 'apple'), (1, 'banana'), (2, 'orange')]
heapq.heapify(priority_queue)

# 항목 추출
while priority_queue:
    priority, item = heapq.heappop(priority_queue)
    print(f'Priority: {priority}, Item: {item}')

 

마무리

- 이번 포스팅은 파이썬 heapq 모듈을 활용한 우선순위 큐 에 대해 알아봤습니다.

 

궁금한 사항은 댓글을 통해서 남겨 주시면 답변 드리겠습니다.
감사합니다.

 

 

728x90
반응형
728x90
반응형

 티스토리 

 

서로 다른 데이터 프레임 병합

두개의 열과 행이 다르고, 서로다른 데이터프레임중 3개의 같은 열의 이름과 값은 데이터 병합에 대해 
알아보자.

1. 코드리뷰

  1.   데이터프레임 확인: 먼저 두 데이터프레임의 내용과 구조를 확인하세요. head(), info(), 또는 describe() 메서드를 사용하여 각 데이터프레임의 상태를 살펴보세요.
  2. 중복 열 제거: 두 데이터프레임에서 중복된 열을 제거하세요. drop_duplicates() 메서드를 사용하여 중복된 열을 확인하고 제거할 수 있습니다. (예: df1.drop_duplicates() )
  3. 열 이름 일치화: 두 데이터프레임의 열 이름을 일치시켜야 합니다. rename() 메서드를 사용하여 열 이름을 변경하거나, columns 속성을 통해 직접 열 이름을 수정하세요.
  4. 데이터프레임 병합: merge() 함수를 사용하여 두 데이터프레임을 병합하세요. 병합 시에는 공통된 열을 지정하여 병합해야 합니다.
  5. 세 개의 열을 사용한 내부 조인(inner)은 모든 지정된 열의 값이 두 데이터프레임에서 일치하는 경우에만 해당 행을 병합합니다. 따라서 'a', 'b', 'c' 열의 값이 모두 일치하는 행만이 결과 데이터프레임에 포함됩니다.
    공통 열의 값이 어느 하나라도 일치하지 않으면 해당 행은 결과에 포함되지 않습니다. 따라서 'a', 'b', 'c' 중 하나라도 값이 일치하지 않으면 해당 행은 병합되지 않습니다.
# 예시 데이터프레임
df1 = pd.DataFrame({
    'a': [1, 2, 3],
    'b': ['A', 'B', 'C'],
    'c': [10, 20, 30]
})

df2 = pd.DataFrame({
    'a': [1, 2, 3],
    'b': ['X', 'Y', 'Z'],
    'c': [100, 200, 300]
})

# 열 이름 일치화 (필요 시)
# df1 = df1.rename(columns={'old_name': 'new_name'})

# 데이터프레임 병합
merged_df = pd.merge(df1, df2, on=['a', 'b', 'c'], how='inner')

 

2. How = "" 기타 매개변수

매개변수 설정으로 데이터프레임을 다양한 방식으로 병합할 수 있습니다. 
어떤 방법을 선택할지는 데이터의 특성과 분석 목적에 따라 다르며 아래 예를 확인.

how 매개변수의 다른 옵션인 'left', 'right', 'outer'에 대해 설명하겠습니다.

Left Join ('left'):
how='left'로 설정하면 왼쪽 데이터프레임의 모든 행을 포함하고, 
오른쪽 데이터프레임의 해당 행이 존재하면 병합합니다. 없는 경우에는 NaN으로 채웁니다.

merged_df = pd.merge(df1, df2, on=['a', 'b', 'c'], how='left')
Right Join ('right'):

how='right'로 설정하면 오른쪽 데이터프레임의 모든 행을 포함하고,
왼쪽 데이터프레임의 해당 행이 존재하면 병합합니다. 없는 경우에는 NaN으로 채웁니다.
merged_df = pd.merge(df1, df2, on=['a', 'b', 'c'], how='right')
Outer Join ('outer'):

how='outer'로 설정하면 두 데이터프레임 중 하나라도 해당 행이 존재하면 병합합니다. 
없는 경우에는 NaN으로 채웁니다.
merged_df = pd.merge(df1, df2, on=['a', 'b', 'c'], how='outer')

마무리

- 이번 포스팅은 서로다른 데이터프레임 병합/Merge 에 대해 알아봤습니다.

 

궁금한 사항은 댓글을 통해서 남겨 주시면 답변 드리겠습니다.
감사합니다.

 

 

728x90
반응형
728x90
반응형

 티스토리 

 

프로젝트를 패키지화하고 pip를 통해 설치 가능하게 만들기

여기에서는 간단한 "hello world"를 출력하는 모듈인 hello를 생성하는 예제를 제공합니다.

1. 코드리뷰

  제목 글 소개 내용 ( 본문2)

프로젝트 디렉토리 구조 생성:

/your_project_directory
    /hello
        __init__.py
        hello.py
    setup.py

hello.py 작성:

def print_hello():
    print("Hello, world!")

init.py 작성:
(이 파일은 비어있어도 상관 없습니다.)

setup.py :

from setuptools import setup, find_packages

setup(
    name='hello-world',
    version='0.1.0',
    packages=find_packages(),
    install_requires=[
        # 필요한 의존성이 있다면 여기에 추가
    ],
)

패키지 빌드:

cd /your_project_directory
python setup.py sdist

패키지 등록 및 업로드:

twine upload dist/*

위 명령어를 실행하기 위해 twine 패키지를 설치해야 할 수 있습니다. (pip install )

패키지 설치 및 테스트 :

pip install hello-world
from hello import hello

hello.print_hello()

이제 사용자는 pip install hello-world 명령어를 사용하여 당신이 만든 모듈을 설치하고 from hello import hello로 "hello world"를 출력하는 함수를 호출할 수 있습니다.

마무리

- 이번 포스팅은 나만의 모듈을 pypi에 등록하는 방법에 대해 알아봤습니다.

 

궁금한 사항은 댓글을 통해서 남겨 주시면 답변 드리겠습니다.
감사합니다.

 

 

728x90
반응형
728x90
반응형

 티스토리 

 

Pydantic 데이터 유효성 검사와 설정 구문 분석

Pydantic은 데이터 유효성 검사와 설정 구문 분석을 간편하게 수행할 수 있게 해주는 Python 라이브러리입니다. 주로 데이터 모델을 정의하고, 입력 데이터의 유효성을 검사하며, JSON 형태의 데이터를 Python 객체로 변환하는 데 사용됩니다. 다음은 Pydantic의 주요 특징과 사용법에 대한 간략한 설명입니다:

1. 주요 특

  선언적 모델 정의:

Pydantic을 사용하면 간단한 Python 클래스를 정의하여 데이터 모델을 선언할 수 있습니다.
자동 유효성 검사:

Pydantic은 모델의 필드에 대한 유효성 검사를 자동으로 수행합니다. 이는 데이터를 모델에 할당할 때 자동으로 유효성을 확인하여 오류를 방지합니다.
기본값 및 타입 변환:

필드에 기본값을 설정하거나, 자동으로 타입 변환을 수행할 수 있습니다.
설정 파싱:

Pydantic 모델은 설정 파일과 같은 데이터를 파싱하고 사용하기 용이합니다.
JSON 시리얼라이제이션 및 디시리얼라이제이션:

Pydantic 모델은 JSON 데이터로 쉽게 변환할 수 있으며, 그 반대로도 가능합니다.
ORM과 호환:

Pydantic 모델은 SQLAlchemy, Django ORM 등과 함께 사용할 수 있어 데이터베이스 모델과의 통합이 용이합니다.

2. 코드리뷰

 

데이터 모델 설정 코드 : 

from pydantic import BaseModel

class User(BaseModel):
    id: int
    username: str
    email: str

모델 인스턴스 생성 및 유효성 검사:

user_data = {"id": 1, "username": "john_doe", "email": "john@example.com"}
user = User(**user_data)

자동 유효성 검사 및 타입 변환:

invalid_user_data = {"id": "not_an_integer", "username": "john_doe", "email": "john@example.com"}
invalid_user = User(**invalid_user_data)  # 유효성 검사 오류 발생

Pydantic을 사용하여 데이터 모델링 및 유효성 검사를 할 때, 정상적인 경우와 유효성 검사 오류가 발생하는 경우에 대한 간단한 예제를 제공합니다.

정상적인 경우:

from pydantic import BaseModel, Email

class User(BaseModel):
    id: int
    username: str
    email: Email

# 정상적인 사용자 데이터
user_data = {"id": 1, "username": "john_doe", "email": "john@example.com"}
user = User(**user_data)

print(user.dict())
# 출력: {'id': 1, 'username': 'john_doe', 'email': 'john@example.com'}

유효성 검사 오류가 발생하는 경우:

# 잘못된 사용자 데이터 (id가 문자열)
invalid_user_data = {"id": "not_an_integer", "username": "john_doe", "email": "john@example.com"}

try:
    invalid_user = User(**invalid_user_data)
except ValueError as e:
    print(f"유효성 검사 오류: {e}")
    # 출력: 유효성 검사 오류: 1 validation error for User
    # id
    #   value is not a valid integer (type=type_error.integer)

위의 두 예제에서 볼 수 있듯이, Pydantic은 모델 정의에 따라 데이터를 검사하고 타입 변환을 수행합니다. 정상적인 경우에는 모델을 성공적으로 생성하고, 유효성 검사 오류가 있는 경우에는 ValueError 예외가 발생합니다.

User(**invalid_user_data)에서 ** 구문은  Python의 "unpacking" 또는 "dictionary unpacking" 구문입니다. 이는 딕셔너리의 키-값 쌍을 함수의 인수로 전달할 때 사용됩니다.

여기서 **invalid_user_data는 딕셔너리 invalid_user_data의 키-값 쌍을 풀어서 인수로 전달하는 역할을 합니다. 즉, User(**invalid_user_data)는 다음과 같이 해석됩니다.

User(id="not_an_integer", username="john_doe", email="john@example.com")

이것은 Pydantic 모델 User를 만들고자 하는데, 유효성 검사 오류가 발생하는 데이터를 인스턴스화하려는 시도를 나타냅니다. Pydantic은 이러한 경우에 유효성 검사 오류를 감지하고 해당 오류를 발생시킵니다.

즉, User(**invalid_user_data)는 User 클래스의 인스턴스를 생성하려는 시도를 나타내며, 이때 invalid_user_data 딕셔너리의 내용을 해당 인스턴스의 초기 값으로 전달하게 됩니다.

만약 **를 사용하지 않으면, 딕셔너리를 하나의 인수로 전달하게 됩니다. 그러면 Pydantic이 예상하는 형식과 일치하지 않아 유효성 검사 오류가 발생할 수 있습니다.

실제로는 User 클래스의 id 필드에 딕셔너리가 전체적으로 할당되기 때문에 Pydantic이 원하는 형식과 다릅니다. **를 사용하면 딕셔너리의 키-값을 개별적으로 전달하게 되어 Pydantic이 이를 제대로 처리할 수 있습니다.

따라서 User(**invalid_user_data)는 딕셔너리를 언패킹하여 User 클래스에 전달하는 것을 의미합니다. 이는 Pydantic이 모델의 필드에 정의된 형식에 따라 각각의 값을 검증하고 할당하게끔 해줍니다.

마무리

- 이번 포스팅은 pydantic에 대해 알아봤습니다.

 

궁금한 사항은 댓글을 통해서 남겨 주시면 답변 드리겠습니다.
감사합니다.

 

 

728x90
반응형
728x90
반응형

 티스토리 

 

try except 구문

프로그래밍에서 에러 처리의 중요성을 강조하며, try-except 블록의 개념과 예외가 발생했을 때 코드 충돌을 방지하는 역할을 간략하게 소개합니다.

1. try-except 코드리뷰

  제목 글 소개 내용 ( 본문2)

일반적인 예외 타입:
Python에서 일반적인 예외 타입인 TypeError, ValueError, FileNotFoundError 등을 살펴보고, 이러한 예외가 언제 발생할 수 있는지 예시를 들어 설명합니다.

try:
    # 예외가 발생할 수 있는 코드
except 예외타입 as e:
    # 예외를 처리하는 코드

여러 개의 except 블록 사용하기 :

여러 개의 except 블록을 사용하여 다양한 종류의 예외를 별도로 처리하는 개념을 소개합니다. 이를 통해 더 구체적이고 명확한 에러 처리 전략을 만들 수 있습니다.

try:
    # 예외가 발생할 수 있는 코드
except TypeError as e:
    # TypeError를 처리하는 코드
except ValueError as e:
    # ValueError를 처리하는 코드

else 블록 추가하기:
예외가 발생하지 않았을 때만 실행되어야 하는 코드를 지정할 수 있는 else 블록의 사용법을 설명합니다.

try:
    # 예외가 발생할 수 있는 코드
except 예외타입 as e:
    # 예외를 처리하는 코드
else:
    # 예외가 발생하지 않았을 때 실행되는 코드

Finally 블록:
finally 블록의 목적을 설명하며, 이 블록을 사용하여 예외가 발생하든 안 하든 반드시 실행되어야 하는 코드를 지정하는 방법을 소개합니다. 이는 정리 작업에 유용합니다.

try:
    # 예외가 발생할 수 있는 코드
except 예외타입 as e:
    # 예외를 처리하는 코드
finally:
    # 예외 여부에 관계없이 반드시 실행되는 코드

 

2. 결론


파이썬의 try-except 구문은 예외를 다루는 핵심 도구로, 코드의 안정성과 신뢰성을 높이는 데 중요한 역할을 합니다. 적절한 예외 처리는 프로그램을 더욱 견고하게 만드는 핵심입니다.

마무리

- 이번 포스팅은 try-except 에러 예외처리에 대해 알아봤습니다.

궁금한 사항은 댓글을 통해서 남겨 주시면 답변 드리겠습니다.
감사합니다.

 

 

728x90
반응형
728x90
반응형

 티스토리 

삼항 연산자

파이썬은 간결하고 가독성이 높은 코드를 작성하기 위해 다양한 문법적 특징을 제공합니다. 그 중 하나가 삼항 연산자입니다. 삼항 연산자는 조건에 따라 값을 선택적으로 할당하는 데 사용되며, if-else 문을 한 줄로 간결하게 표현할 수 있습니다. 

1. 삼항 연산자의 기본 구조

 

value_if_true if condition else value_if_false

위 구조에서 condition은 참 또는 거짓을 평가하는 표현식이며, 만약 condition이 참이면 value_if_true가 반환되고, 그렇지 않으면 value_if_false가 반환됩니다.

 

간단한 사용 예제

# 일반적인 if-else 문
x = 10
if x > 5:
    result = "Greater than 5"
else:
    result = "Less than or equal to 5"

# 삼항 연산자로 대체
result = "Greater than 5" if x > 5 else "Less than or equal to 5"

삼항 연산자를 사용하면 코드가 간결해지고, 조건에 따라 값을 할당하는 과정이 명확해집니다.

2. 다양한 활용 예제

값의 할당:

is_even = True
number_type = "Even" if is_even else "Odd"

리스트 내포(List Comprehension):

numbers = [1, 2, 3, 4, 5]
squared_numbers = [x**2 if x % 2 == 0 else x for x in numbers]

함수 매개변수의 기본값 설정:

def greet(name=None):
    name = name if name else "Guest"
    print(f"Hello, {name}!")

 

주의사항

삼항 연산자는 간결한 코드를 작성하는 데 도움이 되지만, 지나치게 복잡한 표현식을 피하는 것이 좋습니다. 코드 가독성을 유지하기 위해 필요한 경우에만 사용하는 것이 좋습니다.

파이썬의 삼항 연산자는 코드를 더 간결하게 만들어주는 강력한 도구입니다. 조건부 표현식을 활용하여 코드를 단순화하고 가독성을 높이는 데에 적극 활용해보세요.

이제 여러분은 파이썬의 삼항 연산자에 대해 이해했을 것입니다. 간결하면서도 효과적인 코드 작성에 활용해보세요!

마무리

- 이번 포스팅은 삼항연산자 만들기 에 대해 알아봤습니다.

궁금한 사항은 댓글을 통해서 남겨 주시면 답변 드리겠습니다.
감사합니다.

728x90
반응형
728x90
반응형

 티스토리 

python 가상 환경 생

안녕하세요! 오늘은 파이썬 가상 환경 생성에 대해 알아보겠습니다. 가상 환경은 여러 프로젝트 간에 패키지 의존성을 격리시키고 관리하기 위한 중요한 도구입니다. 시작해보겠습니다! 

1. 가상 환경이란?

  가상 환경은 프로젝트별로 독립된 파이썬 실행 환경을 생성하는 것을 의미합니다. 각각의 가상 환경은 자체적으로 라이브러리, 패키지 등을 설치하고 관리할 수 있습니다.

2. venv 모듈을 이용한 기본 가상 환경 생성

# 가상 환경 생성
python -m venv myenv

# 가상 환경 활성화 (Windows)
myenv\Scripts\activate

# 가상 환경 활성화 (macOS/Linux)
source myenv/bin/activate

3. virtualenv 패키지를 사용한 가상 환경 생성

# virtualenv 설치
pip install virtualenv

# 가상 환경 생성
virtualenv myenv

# 가상 환경 활성화 (Windows)
myenv\Scripts\activate

# 가상 환경 활성화 (macOS/Linux)
source myenv/bin/activate

4. 가상 환경에서 패키지 관리

가상 환경이 활성화된 상태에서는 pip 명령어로 필요한 패키지를 설치할 수 있습니다.

pip install 패키지명

# 설치된 패키지 목록 확인
pip list

# requirements.txt 생성
pip freeze > requirements.txt

# requirements.txt로부터 패키지 설치
pip install -r requirements.txt

5. 가상 환경 비활성화

# 가상 환경 비활성화
deactivate

6. 가상 환경 활용의 이점

패키지 격리: 각 프로젝트는 독립된 가상 환경을 가지므로, 패키지 간의 충돌을 방지할 수 있습니다.
종속성 관리: 각 프로젝트의 종속성을 명시하여 버전 충돌을 방지하고 프로젝트의 이식성을 높일 수 있습니다.
클린한 프로젝트 구조: 프로젝트 디렉토리 내에 가상 환경을 생성하면 프로젝트 구조가 깔끔해지고 다른 사용자들도 쉽게 환경을 재현할 수 있습니다.
가상 환경을 사용하여 각 프로젝트를 깔끔하게 유지하고, 필요한 패키지를 효과적으로 관리하세요.

마무리

- python -m venv myenv 개인적으로 전 이것만 사용합니다.
- 이번 포스팅은 파이썬 가상환경 만들기 에 대해 알아봤습니다.

 

궁금한 사항은 댓글을 통해서 남겨 주시면 답변 드리겠습니다.
감사합니다.

 

 

728x90
반응형

+ Recent posts