화면캡처 프로그램 추천 (Picpick)

 

'네이버 캡처' 프로그램을 사용하다가 새로운 화면캡처 프로그램을 찾아야겠다고 생각했습니다

그리고 찾은 PicPick 이라는 프로그램이 너무 마음에 들어 나누고 싶은 마음에 글을 쓰게 되었습니다

 

네이버 캡처 프로그램을 사용하던 가장 큰 이유는 스마트 캡처 기능 때문이었습니다

윈도우 창을 적당히 알아서 자동으로 잡아주는 기능이 너무 편리했기 때문이죠

그래서

  1. 네이버 캡처와 같은 스마트캡처 기능이 있을 것

  2. 캡처 후 편집이 쉬울 것

  3. 단축키 변경이 가능할 것

세 가지 기준으로 찾아보았고, 찾은게 픽핔(PicPick)입니다

기능이 매우 쩔어요. 유용하고 편리합니다

 

 

1. 스마트캡처 기능 = 윈도우 컨트롤 캡처

   두 기능은 거의 유사합니다. 

   자동으로 특정 윈도우 크기만큼 캡처범위를 잡아주기 때문에 매우 편리하죠

   특히 노트북만을 단일로 사용하는 경우는 영역 캡처가 번거롭기 때문에 이 기능은 매우 유용합니다

 

2. 편집이 쉬울 것

   쉽게 글자를 입력하거나 편집하기가 쉽습니다

  그림을 선택하면 나타나는 '서식'탭에는 다양한 기능이 있습니다

  개인적으로 그 중에서 모자이크 기능을 많이 쓰고 있어요. 

  또한, 아래쪽을 보시면 이미지 6 7 8 처럼 이전에 찍었던 이미지를 쉽게 재이용할 수 있습니다 (★★)

 

3. 단축키 변경이 가능한 것

  사람은 손에 익은 습관은 쉽게 바꾸기도 어렵고 바꾸기도 번거롭습니다

  그래서 기왕이면 바꿀 수 있으면 좋겠다 싶었지만 새로운 프로그램을 선택함에 있어서 필수적인 기준은 아니었죠

  아무튼 단축키 변경도 됩니다

  [파일] > '옵션' > '단축키' 에서 변경할 수 있습니다

  캡처를 할 때에 다른 캡처기능을 선택적으로 골라서 사용할 수 있기에 단축키 1개만 설정해도 충분합니다

  제가 원했던 주력기능인 '윈도우 캡처' 기능을 Ctrl + Shift + A 로 설정하고 쓰고 있습니다

 

 

자, 소개는 이것으로 끝입니다

이거.. 쓸만한데? 라는 감상에서 시작된 글이 생각보다 길어졌네요

부디, 이 정보가 도움이 되셨으면 좋겠습니다

유익한 정보를 위해, 이상 Bened 였습니다 :>

 

 

  

[프로젝트_01] Auto Click GUI 프로그램 개발 (04.11)

 

1. Python 3.6을 설치

    너무 최신버전의 파이썬을 사용하면, 라이브러리를 사용할 때에 import가 되지않거나 특이한 오류가 발생합니다

    그런 오류로 시간을 낭비하는 것이 아깝기 때문에 최신버전말고 3.6.8 버전을 설치했습니다 (window기준)

 

2. PyQt5 라이브러리를 설치

  CMD창을 실행 : Win키 + R > 'cmd' 입력 후 엔터

    한글명칭으로는 명령프롬프트(CMD)라고도 말합니다

  PIP 프로그램 업데이트

    가끔 버전 업데이트를 하지않아 정상적으로 설치가 되지않는 경우가 있습니다

    오류 발생 가능성을 줄이기 위해서 업데이트 해주는 것이 좋습니다

    > pip intall --upgrade pip 

  PIP 프로그램을 통한 PyQt5 설치

    > pip install PyQt5

    위 명령어를 입력하면 자동으로 설치가 될 것입니다

    만약 오류가 설치가 되지않는다면 첫째로 인터넷이 연결되어있는지 확인하고

    두번째로 제한된 환경인지 확인합니다. 제한된 환경이라는 것은 특히 회사나 사업장에서 경험하실겁니다

    그럴 경우엔 수동으로 라이브러리를 다운받아서 설치해주는 과정이 필요합니다

 

3. Python IDLE을 통해서 실제로 설치가 잘되었는지 확인

    Win키 누르고 'python'을 입력하면 IDLE이 보이실겁니다.

    나타나지않으면 파이썬이 설치된 경로를 찾아가시면 있습니다

    파이썬 IDLE 창에서 아래의 import를 시도했을 때, 오류가 발생하지 않으면 정상적으로 완료된 것입니다

    > from PyQt5.QWidgets import QApplication, QWidget

    

4. Python GUI 프로그래밍과 관련된 정보 수집

    이전에도 여러번 시도했다가 멈춘 단계입니다

    그동안의 시행착오로 제일 유용한 학습경로는 Youtube임을 깨달았습니다

    검색해서 나오는 블로그보다는 Youtube로 학습하세요

    제가 학습하고 있는 영상은 아래의 영상입니다

    https://www.youtube.com/watch?v=LSFaZ2fFofk

 

 

5. PyQt5를 이용한 GUI 프로그래밍 학습

    Ex1 창 띄우기.py

더보기
import sys
from PyQt5.QtWidgets import QApplication,QWidget
# QApplication이랑 QWidget은 기본적으로 불러와야한다


# 한글의 경우, 기울기가 적용되어잇네 ?

# 한글 주석 글자체 왜이래 ?

class Exam(QWidget):
def __init__(self): #생성자
super().__init__() #상위의 생성자를 쓴다는 의미입니다
self.initUI() #새로 만들 겁니다

def initUI(self): # 이 안에서 이것저것 이루어질겁니다
self.show() #눈에 보여야하니까 기초적입니다
#이제 메인코드 작성

app = QApplication(sys.argv) # 모든 Qt5 어플리케이션은 반드시 어플리케이션 오브젝트를 만들어야하기에, 그 과정입니다
# sys.argv는 파이썬이 보통 쉘스크립트로 실행되어 명령문을 제어하기 위한 sys.argv 를 받습니다
# 그냥 파이참에서 러닝할거면 큰 의미는 없어요

#이번에는 창이 들어갈 객체를 만들어야합니다
w=Exam() #만든 클래스를 가지고 오고 이름을 지정하는 겁니다

#그리고 나갈때에 대해서
#sys.exit() # 프로그램을 깨끗이 종료합니다
#보통
sys.exit(app.exec_()) # app.exec는 보통 이벤트가 발생했을 때에 이벤트 정보를 이 위젯객체에 전달하기 위한 루프 실행하는 겁니다
# 보통 메인루프 실행이라고 부릅니다
# 메인루트가 끝나기 전에는 exeit가 시랳ㅇ이 안되고 app.exec_의 메일루프가 끝날때에 sys.exit가 실행이 되는거죠
# 보통 창을 종료한다고하면 그런겁니다

#이제 실행하면 됩니다
# 위젯창과 일반창이 다른다는 것은, 위젯창은 메뉴가 없어요 , 파일탭같은거요

    Ex2 버튼생성.py

더보기
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton


# 버튼을 생성하기 위해서는 버튼 클래스를 추가적으로 불러와야합니다
# QPushBotton 이라는 것을 추가하면 됩니다


class Exam(QWidget):
def __init__(self):
super().__init__()
self.initUI()

def initUI(self):
# 여기에 코드를 추가해줄 겁니다
btn = QPushButton('버튼에 들어가는 문자열', self) # self는 나 자신에게 버튼을 추가하겠다는 의미를 가집니다
btn.resize(btn.sizeHint()) # sizeHint는 글씨를 기준으로 적당히 크기를 조절해주는 메소드라고 생각하면 됩니다
btn.move(20, 30) # 버튼 위치변경, 왼쪽으로 부터, 위쪽으로 부터
btn.setToolTip('툴팁입니다 <b>이건 볼드한 부분입니다 </b>') # 마우스를 가져다 댔을때 설명이 나옵니다
# 툴팁에는 TAG가 들어갈수있습니다. <b> 태그를 사용하면 미묘하게 굵어진 것을 확인할 수 있어요

self.setGeometry(300, 300, 400, 500) # 창크기를 조절하는 메소드
# 왼쪽,위쪽으로부터의 위치, 그리고 사이즈 400 500을 의미합니다 

self.setWindowTitle('Ex2 학습시간') # 타이틀 이름을 설정합니다
self.show()


app = QApplication(sys.argv)
w = Exam()
sys.exit(app.exec_())

# 파이썬 코드 실행할 시에 Atl + Shift + F10으로 하길 추천
# 어느 파이썬파일을 실행할지 고를 수 있다.
# Shift + F10으로 하면 편리하긴 하지만 선택할 수 없으며 이전에 실행할 파이썬 파일을 실행한다

# 실행해보면 특정객체의 크기에 맞춰서 창 크기가 적용됨을 볼 수 있다

    Ex3 이벤트 처리.py  (★★)

더보기
# Ex1에서의 기본형으로 시작합니다 

# 이벤트 처리 : 눌렀을때 뭐가 되게끔 하는게 이번 목표입니다
import sys
from PyQt5.QtWidgets import QApplication,QWidget,QPushButton
# 버튼을 추가합니다

from PyQt5.QtCore import QCoreApplication
#이벤트 처리를 위한 import입니다

class Exam(QWidget):
def __init__(self):
super().__init__()
self.initUI()

def initUI(self):
btn = QPushButton("push me!",self)
btn.resize(btn.sizeHint())
btn.move(50,50) # 위치지정

#이벤트 처리는 시그널과 슬롯이라고 생각하면 됩니다
#버튼을 클릭하면 '클릭했다는 시그널이 발생합니다'
#그러면 클릭 시의 수행하는 '슬롯'이라는게 있어요
#이벤트가 발생했을 때 수행되는 슬롯을 연결해주는게 이벤트 처리입니다

#이벤트 처리를 위한 import 후에 진행
btn.clicked.connect(QCoreApplication.instance().quit)
#btn.clicked 버튼을 클릭했을 때를
#connect 연결해줍니다
#QcoreApplication.instance().quit QcoreApplication에 있는 instance를 불러오고
# 거기 안에 있는 quit 메소드를 호출해줍니다
#이렇게하면 객체가 나가지는 거니까 = 프로그램이 종료됩니다
#이 이벤트 처리를 작성하고나면 버튼을 누르고 나면 꺼질겁니다.

#정리를 다시해보면 QcoreApplication이 여러가지 이벤트를 하는 거고
#인스턴스를 생성하고
#메스드를 클릭이라는 걸 연결하는 겁니다
#위의 소스코드 1줄이 이벤트 처리 학습의 핵심입니다
#다른 언어들보다 간단하게 나와있어요

#그 다음에 할 건 센터를 맞추는 겁니다
self.resize(400,500) #setGeometry(300,300,400,500)를 통해서 시작좌표 설정 및 크기설정도 가능
#resize만 쓰면 자동으로 전체 화면비율기준 중앙으로 세팅됩니다
#이것만으로도 유용합니다


self.setWindowTitle('Ex3')
self.show()


app = QApplication(sys.argv)
w=Exam()

sys.exit(app.exec_())

 

    Ex4 메시지박스.py

더보기
# Ex3에서의 형으로 시작합니다

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox
#메시지박스를 위해서는 QMessageBox가 필요합니다
#나타난 창의 X버튼을 눌렀을 때 메시지 박스가 나타나도록 할겁니다

from PyQt5.QtCore import QCoreApplication




class Exam(QWidget):
def __init__(self):
super().__init__()
self.initUI()

def initUI(self):
btn = QPushButton("push me!", self)
btn.resize(btn.sizeHint())
btn.move(50, 50)

btn.clicked.connect(QCoreApplication.instance().quit)

self.resize(400, 500)
self.setWindowTitle('Ex3')
self.show()

#새로운 함수를 더 만듭니다
def closeEvent(self,QCloseEvent): #좌측의 파란색 표시는 Override되었기에 재정의를 해야한다는 의미입니다
#파란 표시를 클릭하면 정의된 부분으로 갈 수 있고 (특별히 하는건 없지만 정의되어있음)
#돌아올때에는 Alt+<- 화살표를 통해서 돌아올 수 있음 (이클립스와 유사한 이동방식)

#X버튼을 눌렀을 때 원래 실행되는 메소드
#원하는게 X버튼을 눌렀을 때의 이벤트이므로 오버라이딩이 필요
print('실행테스트') #실제로 실행되는지 테스트하기 위해서 콘솔창 출력 확인
#QMessageBox.question(self,'종료확인','종료하시겠습니까?',
# QMessageBox.Yes | QMessageBox.No,QMessageBox.Yes ) #self와 제목을 입력, 메시지, 그리고 버튼개수를 정해주기
#마지막 부분은 기본 값은 나타냅니다. X버튼 누르고 나타난 창에서 엔터치면 바로 실행될 버튼을 지칭하죠
# 여기까지만 하면 Yes No든 종료된다

# QMessageBox는 내가 선택한 값을 전달해줄 수 있어요
ans = QMessageBox.question(self,'종료확인','종료하시겠습니까?',
QMessageBox.Yes | QMessageBox.No,QMessageBox.Yes ) #self와 제목을 입력, 메시지, 그리고 버튼개수를 정해주기

#ans값에 따라 종료할지 말지를 정할 수 있어요
#파라미터의 QCloseEvent를 이용하는 겁니다
if ans == QMessageBox.Yes: #상수이기 때문에 비교할 수 있어요
QCloseEvent.accept()
else:
QCloseEvent.ignore() #이벤트 발생을 무시합니다

#만약에 조건없이 QCloseEvnet.ignore()를 하면 프로그램은 X버튼으로 끌 수 없게 됩니다
#위 코드기준에서라면 'push me!'버튼을 클릭하는 것으로 대신 끌 수 있쬬
#버튼 클릭 시의 QCoreApplication.instance().quit QCloseEvent랑 별개거든요
#그래서 버튼 눌렀을 때에는 오버라이딩 된 closeEvent 메소드를 타지않게 되어 끌 수 있는 겁니다


app = QApplication(sys.argv)
w = Exam()

sys.exit(app.exec_())

 

    Ex5 상태표시줄.py

더보기
import sys
from PyQt5.QtWidgets import QApplication,QMainWindow
#기본적인 형태의 메뉴바를 만들어볼겁니다
#메뉴 및 상태표시줄을 하려면 Qwidget으로는 안되요
#QMainWindow import해줍니다

#한번 실행해보면, 크게 다른점으 없을 수 있겠지만 상태표시줄 등을 추가할 수 있습니다


class Exam(QMainWindow): #파라미터도 QWidget에서 QMainWindow로 변경해줍니다
def __init__(self):
super().__init__()
self.initUI()

def initUI(self):
self.statusBar() #이거면 상태바가 추가됩니다

#한번 더 호출하면 상태표시줄 객체를 받아오게 됩니다
self.statusBar().showMessage('안녕하세요')
#나타난 창의 최하단에 '안녕하세요'가 나타났을 겁니다
#보통 어떤 상태입니다 혹은 어떤 메뉴입니다 설명을 할때에 사용하죠
#상태표시줄은 이게 끝입니다

self.resize(450, 400)
self.show()


app = QApplication(sys.argv)
w=Exam()

sys.exit(app.exec_())

 

    Ex6 메뉴바 추가.py

더보기
import sys
from PyQt5.QtWidgets import QApplication,QMainWindow,QAction,QMenu
#상태표시줄과 메뉴바는 QWidget으로는 안됩니다
#QMainWindow import합니다

#QAction은 아래에서 '나가기'버튼을 만들기 위해 import되었습니다

#QMenu는 서브그룹을 만들기 위해 import 되었습니다


#메뉴만 생성한 것을 넘어서 실제 눌렀을 때의 실행이 되거나 단축키로 실행되게 하려면 추가적은 import필요
from PyQt5.QtCore import QCoreApplication

class Exam(QMainWindow): #Exam() 메소드에서도 QMainWindow를 파라미터로 받도록 수정합니다
def __init__(self):
super().__init__()
self.initUI()

def initUI(self):


menu = self.menuBar() #메뉴바가 생성됩니다. 기본적으로는 아무것도 안보일겁니다

#여기에서 [File]탭과 같은 그룹을 만들고 서브그룹을 만들면 가시적으로 보입니다
#우선 메뉴그룹을 만듭니다
menu_file = menu.addMenu('File') #저장을 해둬야 추후에 찾기 쉬우니 변수랑 맞춰줍니다
menu_edit = menu.addMenu('Edit')
#현재로써는 아무것도 안되겠지만 메뉴가 생긴다는 걸 확인하세요

#위는 그룹을 만들었고 세부를 만들어보죠
#[File]탭에서 '나가기' 버튼을 만들어봅시다. 그럴 경우 QAction import해야합니다다 file_exit = menu_file.
file_exit = QAction('나가기',self) # 메뉴 객체 생성
file_exit.setShortcut('Ctrl+Q') #단축키를 설정하는게 가능합니다

self.statusBar() #아래의 상태표시줄을 사용하기 위해선 1회 호출이 필요합니다
file_exit.setStatusTip('누르면 영원히 빠이빠이') #상태표시줄 내용을 추가하는 것도 가능합니다
#만들었으니 연결해야죠. 현재로써는 메모리 어딘가에만 올라가 있을 뿐입니다

menu_file.addAction(file_exit)
#위 부분을 하고나면 [File]탭에 마우스를 올렸을때 Exit가 나타납니다
#'나가기'라는 문자열이 왼쪽에서 살짝 떨어져있는건 아이콘이 들어갈 수 있는 여유공간을 나타냅니다

#다음은 서브그룹을 만들어볼겁니다
#서브그룹을 만들기 위해서는 QMenu import해야합니다
file_new = QMenu('New',self) #QAction과 동일한 구조이지만 서브그룹이니 QMenu를 사용합니다
menu_file.addMenu(file_new)
#순차상으로 위의 file_exit보다 아래이기에 순서도 Exit가 먼저나오고 New가 나온것이다
#실제 프로그램을 만드는 경우라면 New가 위에 있는게 더 가독성이 좋다

new_txt = QAction('텍스트 파일',self)
new_py = QAction('파이썬 파일',self)
file_new.addAction(new_txt) #파이썬 파일보다 먼저 적었으니, 윗쪽에 위치할 거다
file_new.addAction(new_py)

#눌렀을 때의 기능에 대해서는 아직 안했으니 없는겁니다
#위 예제에서 주메뉴추가, 서브메뉴추가, 객체추가 에 대해서 각각 이해하고
#메뉴를 만들때에 순서에 대해서 잘 설계한 후에 코드를 작성해야합니다

self.resize(450,400)
self.show()

#메뉴에 실제 기능 연결하기
#Extra , '나가기'버튼 클릭했을 때의 이벤트 처리
#눌러서도 꺼지고 단축키로도 꺼집니다
file_exit.triggered.connect(QCoreApplication.instance().quit)




# 위의 코드로도 나름의 정렬은 되었지만 일반적인 코드 순서는 아래와 같다
# 주메뉴 생성
# 서브메뉴 혹은 객체 생성

# 제일 아래에 주메뉴 추가 소스코드
# 그 위에 서브메뉴 추가 소스코드

# 구조가 바뀌변 복잡할 수 있으니까 제일 위에선 주메뉴 생성, 제일 아래에선 주메뉴 추가까진 맞춰두고
# 진행하시면 좋을 것 같네요

"""
def initUI(self):
self.statusBar()
self.statusBar().showMessage('안녕하세요')

menu = self.menuBar() #메뉴바 생성
menu_file = menu.addMenu('File') #그룹 생성
menu_edit = menu.addMenu('Edit') #그룹 생성

file_exit = QAction('Exit',self) #메뉴 객체 생성
file_exit.setShortCut('Ctrl+Q')
file.setStatusTip('누르면 영원히 빠이빠이')
new_txt = QAction('텍스트 파일',self)
new_py = QAction('파이썬 파일',self)

file_new = QMenu('New',self)

file_new.addAction(new_txt) #서브메뉴 추가
file_new.addAction(new_py) #서브메뉴 추가

menu_file.addMenu(file_new) #주메뉴 추가(그룹)
menu_file.addAction(file_exit) #주메뉴 추가(그룹)

self.resize(450,400)
self.show()

"""

#실제로 코드에 기능을 추가하기 위해서는 위 코드에서 아래 부분을 추가
#file_exit


app = QApplication(sys.argv)
w=Exam()

sys.exit(app.exec_())

 

    Ex0 기본템플릿.py

더보기
import sys
from PyQt5.QtWidgets import QApplication,QWidget

class Exam(QWidget):
def __init__(self):
super().__init__()
self.initUI()

def initUI(self):
self.resize(450,400)
self.show()


app = QApplication(sys.argv)
w=Exam()

sys.exit(app.exec_())

 

[끝] 04.11 학습한 분량은 여기까지입니다.

 

 

 

[덤] 파이썬 글자 폰트 변경

  주석입력을 하기위해 '#이것은 주석...' 처럼 입력하면 한글의 글자체가 매우 괴랄하다는 것을 깨닫게 되실겁니다

  이것은 Pycharm에서 Fallback font 때문입니다

  Fallback font란 main font가 아닌 경우에 사용되는 비상용 폰트라고 말할 수 있습니다

  Pycharm에서 한글을 입력할 때에 font설정이 없기에 비상용 폰트로 한글을 화면상에 표현하는 겁니다

  하지만 저희에겐 이 비상용 폰트(기본 폰트)가 매우 이상합니다. 글자도 길쭉하고 기울기까지 있죠.

  그래서, Pycharm에서 Fallback font를 설정해주면 됩니다. 

  방법은 간단합니다

  [File] > 'Settings' > 'Editor' > 'Font' > Fallback font : DotumChe (돋움체)

  기왕이면 아래의 공간에 직접 글자를 입력해보시는 걸 추천드려요

  위 방법으로 Fallback Font를 설정하고 나면

  주석도 이제 사람이 볼만한 폰트가 됩니다

 

파이썬을 이용해서 Auto Click 프로그램을 개발하는 프로젝트

 

기간 : 2020.04.11 ~ 2020.04.20 (10일)

기능 : 현재 마우스 위치를 저장하여, 해당 위치에 Auto Click이 되도록 함

        GUI를 통해 만들어서 사용자 편의성 

 

추가 기능은 기본기능 구현 후에 고려 

 

시작합니다. :>

이전 글에서 이어집니다


[1] Python 라이브러리 수동설치
[2] Pycharm에서 윈도우 Python 라이브러리 적용하기


-------------

 

이번은 [2] 과정에 대해서 알려드릴게요

 

[2] Pycharm에서 윈도우 Python 라이브러리 적용하기

 

우선, 파이참을 실행시키고 New Project 눌러보면 아래와 같은 창이 나타납니다

   여기에서 붉은 박스를 클립하면 추가내용이 나타납니다

   그 중에서 "inherit global site-packages"를 클릭하시면,

   생성되는 Python Project는 파이참의 자체 라이브러리가 아닌 Window의 라이브러리를 계승하게 됩니다 

 

   이를 통해서 오프라인이거나 제한된 환경에서 Pycharm에 수동 라이브러리를 추가하는 편법이 가능합니다

   라이브러리 import를 할 수 있다는데 그 방법은 화면구성 탓인지 유저불랴인지 되지않아서 강구해낸 방안입니다

 

도움이 되셨으면 좋겠네요. 좋은 하루 보내세요!

제한된 환경에서 Pycharm 패키지를 설치할 수 없다.

예를들어, 특정 사업장에서는 Python Library 다운로드를 위한 진행이 안되는 경우가 그런 경우이다

그럴 경우엔 CMD에서 >pip install pyautogui 과 같은 기존의 PIP 설치도 먹히지않는다

 

수동으로 라이브러리를 설치하는 것이 유일한 방법이다

 

윈도우에서 Python라이브러리를 수동으로 설치하는 방법은 찾았으나,

Pycharm에 수동으로 라이브러리를 적용하는 방법을 찾지못했다.

다만, Pycahrm에서 파이썬 가상환경을 구축할 때 윈도우의 라이브러리를 가져오도록 하는 방법을 찾았다

 

[1] Python 라이브러리 수동설치

[2] Pycharm에서 윈도우 Python 라이브러리 적용하기

 

-----------

 

[1] Python 라이브러리 수동설치

     경로) \AppData\Local\Programs\Python\Python36\Lib\site-packages

    만약 파이썬을 Next 버튼만으로 설치했다면 위와같은 경로에 설치되었을 겁니다

    그러면 AppData 폴더는 뭐냐 라고 하시겠지만, 아래의 방법으로 쉽게 접근이 됩니다

      Win키 + R > Appdata 라고 입력하세요. 그러면 해당 폴더가 뙇 열립니다

     이후에 위의 경로를 참고하여 최종적으로 site-packages 폴더로 이동하세요

     이곳으로 설치할 라이브러리를 옮기고 압축을 풉니다

     제 경우에는 PaAutoGUI 라는 라이브러리를 사용하는게 목적이었습니다

     공식 사이트에서 다운받으니, 확장자가 .tar였어죠

     그래서 7zip 이라는 압축프로그램을 통해 압축을 풀어줬고 최종적으로 아래와 같은 폴더가 생겼습니다

     다운받은 파일 이름이 "PyAutoGUI-0.9.50.tar.tar" 였습니다. 그래서 압축을 2번 풀어줘야했죠

   압축을 푼 폴더의 안으로 들어가면 아래와 같습니다.

   setup.py가 있을거에요 

   저 파일을 실행시키면 라이브러리가 설치되는 겁니다

   이러한 일련의 과정을 PIP가 해주는 것이지만 제한된 환경 혹은 오프라인과 같은 환경을 겪는 우리는 직접 해야하죠

    Shift 누른 채 + 마우스 우클릭을 하면 "여기에 PowerShell 열기" 가 있습니다

    그냥 CMD창으로 하는 방법이 궁금하면 댓글 달아주세요. 추가할게요.

    아래와 같이 > python setup.py install 을 입력하면 설치가 됩니다! [끝]

    안되면 댓글#

   정상적으로 설치되엇으면 테스트를 해봐야겠죠

   검증과정이 없으면 추후에 문제가 생겼을 때 지옥을 경험하실 겁니다. 

   설치가 정상적으로 됐어도 아래 마저 읽으세요!

 

   파이썬을 실행시키세요

    ex) Win키 + 검색:python  

 

 

    실행시킨 파이썬 창에서 아래와 같이 import 했을 때에 오류가 발생하지 않으면,

    정상적으로 라이브러리가 설치된 겁니다. 축하드려요 :P

 

 

 

다음은

[2] Pycharm에서 윈도우 Python 라이브러리 적용하기

 

너무 길어서 내용을 잘랐어요. 링크 걸어두었으니 확인해보세요 :>

 

Database별 출력 개수 제어방법

 

데이터베이스에서 출력 개수를 제어하는 것은 여러모로 유용합니다

대표적인 DBMS들인 Oracle, MSSQL, MySQL, DB2에서의 출력 제어에 대해 알아보겠습니다

 

 

ORACLE

SELECT *

FROM [TABLE]

WHERE ROWNUM <= 5

- WHERE 내 ROWNUM 키워드를 통해

  출력데이터에 조회 순번을 붙이고 순번을 통해 출력 개수를 제어할 수 있습니다

-  ROWNUM과 ORDER BY를 함께 사용할 경우 ROWNUM이 선행하여 적용되기에 원하는 결과가 조회되지않을 수 있습니다. (유의★)

 

SELECT ROW_NUMBER() OVER(ORDER BY [COLUMN] DESC), [COLUMN] 

FROM [TABLE]

- SELECT 내 ROW_NUMBER() OVER() 문구를 통해 정렬 후 순번부여가 됩니다

 

 

MSSQL

SELECT TOP 5 *

FROM [TABLE]

- SELECT 내 TOP 키워드를 통해 출력 개수를 제어할 수 있습니다

 

 

MySQL

SELECT *

FROM [TABLE]

LIMIT 5 

- 쿼리의 끝에 LIMIT 키워드를 사용하여 출력 개수를 제어할 수 있습니다

 

 

DB2

SELECT *

FROM [TABLE]

FETCH FIRST 5 ROWS ONLY

- FETCH FIRST [NUM] ROWS ONLY 문구를 통해 출력 개수를 제어할 수 있습니다

 

+ Recent posts