반응형
반응형
가상환경(virtualenv)은 여러 개의 파이썬 프로젝트가 하나의 컴퓨터에서 충동을 일으키지 않고 존재할 수 있도록 해줍니다. virtualenv는 각 프로그램별로 완전히 독립적인 가상의 환경을 만들어서 각 프로그램별로 라이브러리 모듈등의 버전을 별도로 지정할 수 있게 합니다. 즉 한 컴퓨터에 여러 개발환경을 서로 독립적으로 설치, 실행할 수 있게 해줍니다.
왜 가상 환경을 만들어서 작업을 진행할까? 한마디로 요약하자면 "독립적인 작업환경에서 작업할 수 있다." 로 말할 수 있습니다.
프로젝트를 진행하다보면 여러 라이브러리, 패키지를 다운로드하여서 사용하게 됩니다. 그러다 보면 각 라이브러리들끼리 충돌을 일으키는 문제를 발생시키는 경우가 있습니다. 또는, 특정 버전과 호환하는 경우가 생겨서 최신 버전과 이전 버전 중 선택해야 하는 상황이 발생됩니다. 가상환경은 각 프로그램별로 라이브러리 모듈 등의 버전을 별도로 지정할 수 있게 합니다. 즉 한 컴퓨터에 여러 개발환경을 서로 독립적으로 설치, 실행할 수 있게 해줍니다.
 
다음 명령어를 통해 가상환경이 만들어 집니다.
 
>conda create -n <환경명> python=<버전(ex:3.5이나 3.7 등)>
 
본 교재의 모든 예제들은 다음과 같은 명령으로 만들어 실행하도록 합니다. 본인 스스로 가상 환경을 관리할 수 있다면 다른 이름을 사용해도 관계없습니다.
 
>conda create -n koreait python=3.7
 
- koreait 은 가상환경 이름을 의미합니다.
- python=3.7 는 파이썬 3.7 환경으로 가상환경을 만들어라 하는 것 입니다. 다른 패키지들과의 호환성을 위해 본 교재는 파이썬 3.7를 사용합니다.
- numpy ~ statsmodels : 사용해야 할 라이브러리들을 지정할 수 있습니다. 필요시 pip install 을 사용하여 개별적으로 설치 할 수도 있습니다.
위의 명령을 실행하면 "c:\users\사용자계정\anaconda3\env\koreait" 라는 디렉토리가 생성되면서 그 안에 필요한 것들을 설치하겠냐고 묻게 됩니다. 당연히 "y" 를 눌러서 설치를 합니다.
내가 제대로 환경을 만들었는지 다음 명령을 실행하여 확인합니다.
>conda env list
내가 만든 환경이 리스트에 존재한다면 성공적으로 만들어 진 것입니다.
이후에 가상환경을 활성화하고 싶으면 activate 명령어로 해당 가상환경을 활성화합니다.
activate 가상환경명 혹은 conda activate 가상환경명
>conda activate koreait
>activate koreait
(base)표시가 (koreait) 으로 변경되었음을 볼 수 있습니다.
비활성화 시키고 싶으면 koreait 이 활성화되어 있는 상태에서
>deactivate 혹은 >conda deactivate
라고 해 주면 됩니다.
가상 환경을 제거하고 싶으면 아나콘다 터미널에서 (base)환경을 확인하고 다음을 입력한 후 실행하면 됩니다.
>conda remove -n name --all
만들어진 koreait 환경을 제거하고 다시 설치하고 싶다면 다음 명령으로 가상환경을 제거하고 다시 만들어 주시면 됩니다.
(base)>conda remove -n koreait --all
Anaconda Prompt에서 (koreait )이 표시되어 있다면 deactivate 를 입력하여 (base)환경으로 돌아옵니다. (base) 환경에서 python --version 을 실행해 봅니다. 그리고 “conda activate koreait ” 명령으로 가상환경 (koreait )을 활성화시킨 후 python --version 을 실행해 봅니다. (base) 환경에서 파이썬 버전은 3.7.2 이고 (koreait ) 환경에서 파이썬 버전은 3.5.6 이 적용됨을 확인할 수 있습니다.
가상환경 (koreait )에서 파이썬이 제대로 동작하는지 “Hello Workd” 예제를 사용하여 확인해 보자.
Anaconda Prompt에서 (koreait ) 환경에서 “python”을 입력합니다.
>>> 표시가 나타나면 print(“Hello World”) 를 입력하고 엔터를 누릅니다.
 
반응형
반응형

[PYTHON] Gradio 웹앱 만들기


Build & share delightful machine learning apps easily

Gradio 
        https://gradio.app/             
        https://github.com/gradio-app/gradio   

 

"""_summary_
     # Gradio 
        https://gradio.app/             
        https://github.com/gradio-app/gradio     
        
        
Returns:
    _type_: _description_
"""
import gradio as gr

def greet(name):
    return "Hello " + name + " !"

demo = gr.Interface(fn=greet, inputs="text", outputs="text")


if __name__ == "__main__":
    demo.launch(share=True)

반응형
반응형

[PYTHON] (most likely due to a circular import) 에러 발생 할때

 

 

파일명을 모듈과 동일한 이름으로 하면 안된다. import에서 문제 발생. 

 

 

반응형
반응형

[PYTHON] python QRCode 만들기

    pyqrcode
    >> pip install pyqrcode
   
    pypng
    >> pip install pypng
   
    Pillow (PIL Fork)
    >> pip install Pillow
   
    1.pip 를 업데이트 하고 설치 하는 것이 좋다.
    2.Prompt는 "관리자로 실행" 해서 설치 하시오.
    python.exe -m pip install --upgrade pip
   
    * 설치된 패키지 확인
    pip list -v 

 

""" pyqrcode
    https://pypi.org/project/PyQRCode/
    >> pip install pyqrcode
    
    pypng
    https://pypi.org/project/pypng/
    >> pip install pypng
    
    Pillow (PIL Fork)
    https://pillow.readthedocs.io/en/latest/installation.html
    >> pip install Pillow
    
    1.pip 를 업데이트 하고 설치 하는 것이 좋다. 
    2.Prompt는 "관리자로 실행" 해서 설치 하시오. 
    python.exe -m pip install --upgrade pip
    
    * 설치된 패키지 확인
    pip list -v
"""
import os
import sys
os.environ['JAVA_OPTS'] = 'Xmx4096M'

import pyqrcode
import png
from PIL import Image 

print(" os.getcwd() : ", os.getcwd())

prePath = "./Project/QR/"
file_name = prePath + "QRCode.png" 

link = input("URL을 입력하세요~ : ")
qr_code = pyqrcode.create(link)
qr_code.png( file_name, scale=5)
Image.open(file_name)

반응형
반응형

[PYTHON] FLASK 플라스크

https://wikidocs.net/book/4542

 

점프 투 플라스크

**점프 투 플라스크 종이 책 출간 !! (2020.11)** * [책 구입 안내](https://wikidocs.net/102760) 점프 투 플라스크는 파이보…

wikidocs.net

점프 투 플라스크

지은이 : 박응용
최종 편집일시 : 2022년 11월 21일 8:20 오후
저작권 : 
e-book 판매가 : 7,000원 (구매하기)

점프 투 플라스크 종이 책 출간 !! (2020.11)

"점프 투 플라스크"는 "파이보"라는 이름의 파이썬 게시판(Python Board) 서비스를 만들어가는 과정을 설명한 플라스크 입문서이다. 파이썬 설치부터 시작하여 서비스 운영까지 웹 프로그래밍의 처음부터 끝까지 모든 것을 알 수 있도록 구성하였다.

이 책을 따라하다 보면 다음과 같은 웹 사이트가 만들어진다. (최종 결과물)

파이썬 전반에 대한 질문과 답변은 최근 오픈한 파이썬 게시판 서비스인 파이보를 활용하도록 하자.

책을 따라하다 생기는 질문은 파이보의 완성형인 아래사이트를 활용하도록 하자.

반응형
반응형

[python] Python 3.11: 진정으로 즐길 수 있는 새로운 기능

https://towardsdatascience.com/python-3-11-new-features-that-you-will-truly-enjoy-9fd67882fdf

 

Python 3.11 New Features That You Will Truly Enjoy

Kudos to all the effort by volunteers across the world

towardsdatascience.com

이미지 출처: Unsplash

Python 3.11은 2022년 10월 24일에 출시되어 우리가 만져볼 수 있는 몇 가지 흥미로운 개선 사항을 제공했습니다. 여기에서 모든 PEP 의 전체 문서를 볼 수 있습니다 . 이 기사에서는 5가지와 추가로 여러분이 높이 평가할 멋진 새 기능을 제공할 것입니다.

PEP 657 : 오류 추적 로케이터

Python 3.11 이전에는 예외가 발생했을 때 오류 추적의 유일한 정보는 오류가 무엇인지 설명 하는 줄 이었습니다. 예를 들어,

x, y, z = 1 , 2 , 0
 a, b, c = 3 , 4 , 5
 결과 = (x / y / z) * (a / b / c)

이 코드는 0과 같은 나누기 때문에 오류를 발생시킵니다. X/Y by Z다음은 이치에 맞는 오류 메시지이지만 코드의 어느 부분이 이 문제를 일으켰는지 아직 모르기 때문에 정보가 아닙니다.

Python 3.11에서 우리는 이것을 보게 될 것입니다.

오류 탐지기의 도움으로 근본 원인이 Y 또는 Z가 0~~^~~ 이라는 것이 분명합니다 . 이 주석이 달린 트레이스백은 코드가 복잡해지면 더욱 강력해집니다.

PEP 673 : 자아 유형

유형 힌트의 경우 이전에는 현재 클래스 자체를 참조해야 하는 경우 아래와 같이 유형 변수 를 명시적으로 정의해야 했습니다.

이제 3.11에서는 Self 캡슐화 클래스 자체를 참조하는 유형을 사용할 수 있습니다. 이렇게 하면 유형 변수를 정의하는 번거로움이 사라집니다.

향상된 {asyncio} : 비동기 컨텍스트 관리자

비동기 프로그래밍을 사용하면 코드는 여전히 한 번에 한 단계씩 실행되지만 시스템은 다음 단계로 이동하기 전에 이 단계가 완료될 때까지 기다리지 않습니다.

파이썬에서 이것은 {asyncio}모듈에 의해 처리됩니다. 우리는 여러 비동기 작업을 생성하고 각 작업이 실행될 때까지 기다린 다음 asyncio.gather(). 예를 들어 심부름을 해보자.

 

터미널에서 실행하면 다음과 같은 결과가 나타납니다.

그러나 list 작업을 기다리기 전에 수동으로 모니터링하는 asyncio.gather것은 번거롭습니다. 새로운 기능/클래스 TaskGroup()가 3.11에 도입되었습니다.

 

TaskGroup종료 시 모든 작업을 기다리는 작업 그룹을 보유하는 컨텍스트 관리자로 기능합니다 . 또한 구문이 더 간단합니다.

PEP 654 : 예외 그룹

예외 처리를 위한 유사한 "그룹화" 기능은 3.11에 추가된 예외 그룹 입니다. 단일 예외에 래핑된 여러 일반 예외로 생각할 수 있습니다.

볼 수 있듯이 오류가 를 트리거하면 ExceptionGroup자체 패널에 표시된 두 하위 예외가 모두 발생했습니다.

처리 하기 위해 ExceptionGroup Python 3.11에는 새 키워드도 추가되었습니다 except*.

를 사용하면 except*에 래핑된 여러 오류 ExceptionGroup 가 처리됩니다. 이 기능은 여러 비동기 작업이 함께 실행되는 { asyncio } 에서 사용될 때 더 효과적입니다.

PEP 678 : 사용자 지정 예외 사항

add_note오류 처리를 위한 또 다른 훌륭한 새 기능은 사용자 지정 메시지를 추가할 수 있는 예외 메모입니다 . 예를 들어,

보너스 PEP 659 : 더 빠른 실행 속도

존경하는 가작으로 Python 3.11은 Faster CPython 이니셔티브 덕분에 이전 버전보다 10%-60% 더 빠를 것으로 예상됩니다.

결론: Python 3.11로 업그레이드해야 합니까?

때에 따라 다르지! 개인적으로 프로젝트에 사용된 특정 라이브러리가 아직 Python 3.11과 호환되지 않을 수 있으므로 프로덕션 환경을 업그레이드하지 않도록 주의 해야 합니다.

테스트해보고 싶다면 Google colab에서 테스트하는 것이 좋습니다. 다음을 실행하여 Python 버전을 3.11로 업그레이드할 수 있습니다.

!sudo apt-get 업데이트 -y 
!sudo apt-get install python3 .11
 !sudo 업데이트 대안 --install /usr/ bin /python3 python3 /usr/ bin /python3 .7  1
 !sudo 업데이트 대안 --install / usr/ bin /python3 python3 /usr/ bin /python3 .11  2

이 기사에서는 가장 흥미로운 새 기능만 살펴보았습니다. 모든 개선 사항 및 변경 사항에 대한 공식 릴리스 문서 를 확인하십시오 .

반응형

+ Recent posts