728x90
반응형

 티스토리 

 

LOCAL CHATGPT4 사용하기.

  회사 또는 보안으로 인한 제약사항이 있다면 로컬 컴퓨에서 사용가능한 생성형 AI를 만들어보자. 
  개인 정보나 회사 기밀정보가 있어서 ChatGPT 대안으로 공부하여 보자.
  아직 로컬용 오픈소스가 계속 발전되고 있으니, 추후에는 더 간편하게 사용 할수 있지 않을가 합니다.

GPT4ALL 사이트 : https://gpt4all.io/index.html

 

1. GPT4ALL

  아래 사이트를 참고하여 정리해 보았습니다.
아래 사이트에는 다양한 LLM 들이 있으니 참고하세요.
https://python.langchain.com/docs/integrations/llms/gpt4all

Import 준비 

from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
from langchain_community.llms import GPT4All

LLM에 질문 하는 코드

template = """Question: {question}

Answer: Let's think step by step."""

prompt = PromptTemplate(template=template, input_variables=["question"])

LLM 위치 지정

local_path = (
    "./models/ggml-gpt4all-l13b-snoozy.bin"  # replace with your desired local file path
)
# Callbacks support token-wise streaming
callbacks = [StreamingStdOutCallbackHandler()]

# Verbose is required to pass to the callback manager
llm = GPT4All(model=local_path, callbacks=callbacks, verbose=True)

# If you want to use a custom model add the backend parameter
# Check https://docs.gpt4all.io/gpt4all_python.html for supported backends
llm = GPT4All(model=local_path, backend="gptj", callbacks=callbacks, verbose=True)
llm_chain = LLMChain(prompt=prompt, llm=llm)
question = "What NFL team won the Super Bowl in the year Justin Bieber was born?"

llm_chain.run(question)

아직 위코드를 실행을 못해 봤다.
완료후에 다시 후기를 써볼 예정.

GPT4All 사이트에 가서  윈도우용 설치 파일을 다운로드하여 다양한 모델을 다운로드 할수도 있다.

 .bin 또는 .gguf로 끝나는 파일을 다운로드
q_숫자는 양자화 정도를 나타낸다. 
숫자가 높을수록 인공지능 데이터가 많아 정확도 가 높고, 컴퓨터 사양도 좋아야 겠지..

https://huggingface.co/models?language=ko&sort=trending&search=gguf

For more info, visit https://github.com/nomic-ai/gpt4all.

마무리

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

 

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

 

 

728x90
반응형
728x90
반응형

 티스토리 

 

Replit.com에서 웹페이지에서 코딩 

코딩의 끊임없는 발전 속에서 온라인 코딩 플랫폼은 개발자와 학습자들에게 접근 가능하고 협업이 용이한 환경을 제공하는 데 중요한 역할을 합니다. 이 중 하나로 주목받고 있는 플랫폼이 바로 Replit.com으로, 주로 Python을 포함한 다양한 프로그래밍 언어를 사용하는 이용자들에게 효과적인 플랫폼을 제공하고 있습니다.

1. Replit.com이란?

  개인적으로 가장 많이 사용하는 온라인 플랫폼 이라 소개 합니다.

Replit.com은 사용자들이 웹 브라우저에서 직접 코드를 작성하고 실행하며 공유할 수 있는 온라인 통합 개발 환경(IDE)입니다. 당신이 경험이 풍부한 개발자이든 초보자이든 Replit.com은 다양한 프로그래밍 언어로 실험할 수 있는 다재다능한 공간을 제공합니다.

코딩 화면 :아래 그림처럼 웹에서 작성. 중간 중간 AI의 문법 철자 등을 자동으로 찾아주는 편리함까지..

 

2. 주요 기능

1. 다국어 지원:
Replit.com은 다양한 프로그래밍 언어를 지원하며 특히 Python에 중점을 두고 있습니다. 사용자들은 쉽게 언어를 전환하고 다양한 코딩 프로젝트에 참여할 수 있습니다.

2. 실시간 협업:
Replit.com은 협업을 쉽게 만듭니다. 여러 사용자가 동시에 동일한 코드에서 작업할 수 있어 팀워크와 지식 공유를 촉진합니다.

3. 즉각적 실행:
이 플랫폼은 빠르고 번거로움 없는 코드 실행을 제공합니다. 사용자들은 실시간으로 코드 결과를 확인할 수 있어 원활한 디버깅 및 테스트 프로세스를 도와줍니다.

4. 교육 자료:
Replit.com은 전문가들 뿐만 아니라 교육자와 학생들을 위한 환경을 제공합니다. 협업 코딩과 대화형 튜토리얼과 같은 기능들이 교육에 적합한 환경을 만들어줍니다.

시작하기
1. 계정 생성:
사용자는 Replit.com에서 무료 계정을 생성하여 프로젝트를 저장하고 어디서든 액세스할 수 있게 됩니다.

2. 프로젝트 생성:
새로운 프로젝트를 시작하는 것은 간단합니다. 사용자는 선호하는 프로그래밍 언어를 선택하고 즉시 코딩을 시작할 수 있습니다. 또한 일반적인 프로젝트 유형에 대한 템플릿도 제공됩니다.

3. 공유와 협업:
Replit.com을 통해 사용자는 프로젝트를 다른 사람들과 쉽게 공유할 수 있습니다. 이는 커뮤니티와 연결되어 다른 개발자로부터 학습할 수 있는 기회를 열어줍니다.

Replit.com 장점
1. 접근성:
웹 기반으로 된 이 플랫폼은 사용자가 어디에서나 인터넷 연결만 있다면 프로젝트에 액세스할 수 있는 유연성을 제공합니다. 이동 중에도 개발자에게 공간의 제약에 자유로워 집니다.

2. 다양성:
Replit.com은 다양한 프로젝트, 간단한 Python 스크립트부터 복잡한 웹 개발 작업까지 수용할 수 있는 다재다능성을 지니고 있습니다. 이는 다양한 요구에 맞는 개발자들에게 매력적인 선택지가 됩니다.

3. 커뮤니티 참여:
Replit.com 커뮤니티의 일원이 되면 사용자는 이와같이 개발자들과 연결되어 도움을 얻고 지식을 공유할 수 있는 기회를 가집니다. 커뮤니티 참여로 많은 자료를 서로 공유 합니다.

 

마무리

- 이번 포스팅은  replit.com 웹기반 개발툴 / 컴파일러 에 대해 알아봤습니다.

 

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

 

 

728x90
반응형
728x90
반응형

 티스토리 

 

랜덤 난수 생성 모듈 

Python의 random 모듈을 사용해서 숫자 맞추기 게임을 만들면서 공부해 보자.
we'll review and optimize a simple number guessing game code.

Hello! In this article, we'll review and optimize a simple number guessing game code written in Python.

1. 코드리뷰

  이 코드는 1부터 100까지의 랜덤한 숫자를 생성하고, 사용자에게 숫자를 입력받아 정답을 맞추는 게임입니다. 사용자가 입력한 숫자에 따라 "높은 숫자를 선택하세요." 또는 "낮은 숫자를 선택하세요." 등의 힌트가 표시됩니다.

import random

def Guessing_Number():
    random_number = random.randint(1, 1000)
    play_count = 1

    while True:
        try:
            my_number = int(input("1~1000 사이의 숫자를 입력하세요: "))

            if my_number > random_number:
                print("낮은 숫자를 선택하세요. ~^^")
            elif my_number < random_number:
                print("높은 숫자를 선택하세요. ~^^")
            else:
                print(f"정답입니다!. 시도한 횟수 : {play_count} ")
                break

            play_count += 1
        except ValueError:
            print("에러가 발생하였습니다. 올바른 숫자를 입력하세요.")
            

# 게임 실행
Guessing_Number()

 

 

2. 영문 버전 코드

import random

def number_guessing_game():
    print("Welcome to the Number Guessing Game!")
    min_value = 1
    max_value = 100
    answer = random.randint(min_value, max_value)
    attempts = 0

    while True:
        try:
            guess = int(input(f"Enter a number between {min_value} and {max_value}: "))
        except ValueError:
            print("Please enter a valid number.")
            continue

        attempts += 1

        if guess < min_value or guess > max_value:
            print(f"Please enter a number between {min_value} and {max_value}.")
            continue

        if guess < answer:
            print("Choose a higher number.")
        elif guess > answer:
            print("Choose a lower number.")
        else:
            print(f"Congratulations! You guessed the correct number in {attempts} attempts.")
            break

# Run the game
number_guessing_game()

마무리

- 이번 포스팅은 랜덤 모듈을 활용하여 숫자 맞추기 게임에 대해 알아봤습니다.

 

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

 

 

728x90
반응형
728x90
반응형

 티스토리 

 

두 개의 판다스 데이터프레임을 b_id 열을 기준으로 병합

두 개의 판다스 데이터프레임을 b_id 열을 기준으로 병합하는 방법은 merge 함수를 사용하는 것입니다. 아래는 주어진 데이터프레임을 기반으로 b_id 열을 기준으로 병합하는 예제 코드로 공부해 보자.

1. 코드리뷰

  2개의 판다스 데이터 프레임의 'b_id'열을 기준으로 값이 같은 행을 병합하는 코드

import pandas as pd

# 1번 데이터프레임 생성
df1_data = {'sepal_length': [5.1, 4.9, 4.7, 4.6, 5.0, 5.4],
            'sepal_width': [3.5, 3.0, 3.2, 3.1, 3.6, 3.9],
            'petal_length': [1.4, 1.4, 1.3, 1.5, 1.4, 1.7],
            'petal_width': [0.2, 0.2, 0.2, 0.2, 0.2, 0.4],
            'species': ['setosa', 'setosa', 'setosa', 'setosa', 'setosa', 'setosa'],
            'species_id': [1, 1, 1, 1, 1, 1],
            'b_id': [33, 765, 54, 2, 43, 1]}

df1 = pd.DataFrame(df1_data)

# 2번 데이터프레임 생성
df2_data = {'a': [5.1, 4.9, 4.7, 4.6, 5.0, 5.4],
            'b': [3.5, 3.0, 3.2, 3.1, 3.6, 3.9],
            'c': [1.4, 1.4, 1.3, 1.5, 1.4, 1.7],
            'petal_width': [0.2, 0.2, 0.2, 0.2, 0.2, 0.4],
            'species': ['setosa', 'setosa', 'setosa', 'setosa', 'setosa', 'setosa'],
            'species_id': [1, 1, 1, 1, 1, 1],
            'b_id': [33, 765, 1, 2, 3, 1]}

df2 = pd.DataFrame(df2_data)

# b_id 열을 기준으로 데이터프레임 병합
merged_df = pd.merge(df1, df2, on='b_id', how='inner')

# 결과 출력
print(merged_df)

이 코드는 'b_id' 열을 기준으로 내부 조인(inner join)을 수행하여 두 데이터프레임을 병합합니다. how='inner' 파라미터는 공통된 값이 있는 행들만을 병합하도록 합니다. 결과는 merged_df에 저장되며 출력됩니다.

 

2. 코드리뷰 - key 열을 기준으로 두 데이터프레임을 병합

이 예제에서는 key 열을 기준으로 두 데이터프레임을 병합하고 있습니다.

import pandas as pd

# 첫 번째 데이터프레임 생성
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'c'], 'key': ['X', 'Y', 'Z']})

# 두 번째 데이터프레임 생성
df2 = pd.DataFrame({'C': ['x', 'y', 'z'], 'D': [4, 5, 6], 'key': ['X', 'Y', 'Z']})

# 데이터프레임 병합
merged_df = pd.merge(df1, df2, on='key')

# 결과 출력
print(merged_df)

 

 

3. 코드리뷰 - key 열을 기준으로 두 데이터프레임을 병합 #2

 

import pandas as pd

# 세 번째 데이터프레임 생성
df3 = pd.DataFrame({'E': [10, 20, 30], 'F': ['apple', 'banana', 'cherry'], 'key': ['X', 'Y', 'Z']})

# 네 번째 데이터프레임 생성
df4 = pd.DataFrame({'G': ['red', 'green', 'blue'], 'H': [100, 200, 300], 'key': ['X', 'Y', 'Z']})

# 데이터프레임 병합
merged_df_2 = pd.merge(df3, df4, on='key')

# 결과 출력
print(merged_df_2)

이 예제에서도 key 열을 기준으로 두 데이터프레임을 병합하고 있습니다. pd.merge 함수는 공통된 열을 기준으로 데이터프레임을 효과적으로 병합할 수 있는 강력한 기능을 제공합니다.

 

마무리

- 이번 포스팅은 pd.merge 또다른 예에 대해 알아봤습니다.

 

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

 

 

728x90
반응형
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
반응형

+ Recent posts