Difference between revisions of "파이썬"

Jump to navigation Jump to search
6,288 bytes added ,  13:39, 8 April 2018
no edit summary
Line 1,356: Line 1,356:


=== pip로 패키지 설치 ===
=== pip로 패키지 설치 ===
예전엔 모듈 또는 패키지 설치를 위한 pip를 따로 설치해야 했지만 최신 버전의 파이썬은 pip를 내장하고 있다. 예를 들어 [[필로우]]([[Pillow]]) 패키지를 설치할 경우 [[윈도우즈]]는 [[명령 프롬프트]]에서
예전엔 모듈 또는 패키지 설치를 위한 pip를 따로 설치해야 했지만 최신 버전의 파이썬은 pip를 내장하고 있다. 예를 들어 [[PyAutoGUI]] 패키지를 설치할 경우 [[윈도우즈]]는 [[명령 프롬프트]]에서
  pip install Pillow
  pip install pyautogui
를 입력하면 된다.
를 입력하면 된다. 만약 최신 pip가 나와서 업그레이드하라고 뜨면
python -m pip install --upgrade pip
를 해주면 된다. 윈도우즈에서는 파이썬 2와 3에서 모두 쓸 수 있는 pip가 설치되니 버전에 신경 쓸 필요 없다.




Line 1,390: Line 1,392:
  import pyautogui
  import pyautogui
  pyautogui.moveTo(230, 140)
  pyautogui.moveTo(230, 140)
를 입력하고 () 안의 x 좌표와 y 좌표의 숫자를 적당히 바꿔가면서 모니터 안에서의 적당한 위치를 찾는다. 그리고
를 입력하고 () 안의 x 좌표와 y 좌표의 숫자를 적당히 바꿔가면서 모니터 안에서의 적당한 위치를 찾는다. 맨 왼쪽 위가 (0, 0)이다. 숫자는 [[픽셀]]([[pixel]]) 단위이다.


  import pyautogui, time
pyautogui.moveTo()는 "절대 좌표"로 이동하는 것으로 괄호 안에는 0을 초과하는 숫자가 들어가야 한다. 마이너스나 0을 넣으면 오류가 난다. 화면의 최대 해상도에 해당하는 좌표나 화면을 넘어가는 좌표를 입력해도 오류가 나지는 않는다. 그냥 화면 오른쪽 제일 아래에 있는다.
 
pyautogui.moveRel()는 "상대 좌표"로 이동하는 것으로 괄호 안에 마이너스를 입력하면 -x 방향(왼쪽)과 -y 방향(위)으로 움직인다. 화면 끝까지 가면 거기서 더 가지 않고 그 자리에서 다음 명령을 수행한다.
 
그리고
 
  import time, pyautogui
   
   
  time.sleep(2)
  time.sleep(2)
Line 1,403: Line 1,411:


라는 프로그램을 만들어서 실행시켜본다. 그러면 프로그램 실행 후 2초 있다가 마우스 커서가 x=230, y=140 좌표로 이동한 후 "클릭 -> 그 위치에서 x축 방향(오른쪽)으로 100, y축 방향(아래)으로 40 이동 -> 1.5초 동안 쉼"을 0에서 7까지 여덟 번 반복한다.
라는 프로그램을 만들어서 실행시켜본다. 그러면 프로그램 실행 후 2초 있다가 마우스 커서가 x=230, y=140 좌표로 이동한 후 "클릭 -> 그 위치에서 x축 방향(오른쪽)으로 100, y축 방향(아래)으로 40 이동 -> 1.5초 동안 쉼"을 0에서 7까지 여덟 번 반복한다.


이 외에도 더블클릭을 하거나 키보드를 누르거나 스크린샷을 찍는 등 다양한 동작을 시킬 수 있다.
이 외에도 더블클릭을 하거나 키보드를 누르거나 스크린샷을 찍는 등 다양한 동작을 시킬 수 있다.


==== 키보드 자동 입력 스크맆트 ====
  import pyautogui, time
  import pyautogui, time
   
   
Line 1,411: Line 1,422:
   
   
  pyautogui.typewrite('Rape your!')  
  pyautogui.typewrite('Rape your!')  
  pyautogui.press('left')  # press the left arrow key
  pyautogui.press('left')   
  pyautogui.press('enter') # press the Enter key
  pyautogui.press('enter')
   
   
  pyautogui.press('hangeul')
  pyautogui.press('hangul')
  pyautogui.keyDown('shift')  # hold down the shift key
  pyautogui.keyDown('shift')  # hold down the shift key
  pyautogui.press('q')
  pyautogui.press('q')
Line 1,420: Line 1,431:
  pyautogui.press(['h', 'w', 'l'])
  pyautogui.press(['h', 'w', 'l'])
   
   
  pyautogui.press('esc') # Esc 키를 누른다
pyautogui.keyDown('ctrl')
  pyautogui.press('f1')     # press the F1 key
  pyautogui.press('f')
pyautogui.keyUp('ctrl')
time.sleep(2.4)
  pyautogui.press('esc')


[[리눅스 민트]]에서 위와 같이 프로그램을 실행한 후 텍스트 편집기 [[xed]]를 열고 키보드를 영어 타자에 놓으면 2초 후 Rape your!를 입력하고 왼쪽으로 한 칸 가고, 엔터키를 누른 후 "한/영" 키를 눌러 한글로 전환하고, Shift 키를 누른 상태에서 ㅃ을 입력하고, Shift 키를 놓은 후 "ㅗ지"를 입력한다. # 뒤는 [[주석]]이니 입력하지 않아도 무방하다. 그리고 Ctrl 키를 누른 상태에서 f 키를 눌러 "검색"을 띄운다. 그리고 Esc 키를 눌러 "검색"을 닫는다. 만약 [[소스 코드]]의 'hangul'이 작동하지 않으면 'hangeul'이나 'altright'를 입력한다. altright는 오른쪽 Alt 키이다.


간단한 사용 방법
[[윈도우즈]]의 경우 [[메모장]]에서 하면 되며 "찾기"의 단축 키가 F3 이므로 맨 마지막 단락을 아래와 같이 바꿔도 작동한다.
 
pyautogui.press('f3')
time.sleep(2.4)
pyautogui.press('esc')
 
 
PyAutoGUI 사용 방법 짧게 설명
GitHub - asweigart/pyautogui: A cross-platform GUI automation Python module for human beings. Used to programmatically control the mouse & keyboard.
GitHub - asweigart/pyautogui: A cross-platform GUI automation Python module for human beings. Used to programmatically control the mouse & keyboard.
https://github.com/asweigart/pyautogui
https://github.com/asweigart/pyautogui




전체 사용 방법
PyAutoGUI 사용 방법 전체 설명
Welcome to PyAutoGUI’s documentation! — PyAutoGUI 1.0.0 documentation
Welcome to PyAutoGUI’s documentation! — PyAutoGUI 1.0.0 documentation
https://pyautogui.readthedocs.io/en/latest/keyboard.html
https://pyautogui.readthedocs.io/en/latest/keyboard.html




다른 패키지
다른 자동화 패키지들
Controlling mouse with Python
Controlling mouse with Python
https://stackoverflow.com/questions/1181464/controlling-mouse-with-python
https://stackoverflow.com/questions/1181464/controlling-mouse-with-python
Line 1,688: Line 1,710:
컴파일 & 링크 & 빌드
컴파일 & 링크 & 빌드
https://opentutorials.org/module/1594/9734
https://opentutorials.org/module/1594/9734
== make와 Makefile ==
[[리눅스]]나 [[유닉스]]에서는 명령어를 여러번 입력해서 해야 하는 프로그램의 [[빌드]]를 make 한 번 입력하여 편하게 하기 위해 [[메이크]]([[make]])라는 걸 사용한다. 참고로 make는 [[윈도우즈]]에서도 사용할 수 있다. Makefile이라는 텍스트 파일 안에 자동으로 실행할 [[스크맆트]]([[script]])를 적어둔다. 그리고 [[터미널]]에서 make를 입력하면 [[소스 코드]] 파일들을 [[컴파일]]과 [[링크]]를 수행하여 Makefile에 적힌대로 [[빌드]]를 한다.
make clean
이라 명령하면 타겟(target) 파일을 만들기 위해 임시로 생성한 현재 디렉토리의 모든 object 파일들을 rm 명령어로 제거해 줍니다.
make와 Makefile - 멍멍멍
http://bowbowbow.tistory.com/12 [멍멍멍]
우선 [[펄]]([[Perl]])로 작성된 ./configure 스크립트를 수행하여 Makefile을 생성하고 build 환경을 구성하게 된다. ./configure 대신 ./Configure 나 ./config 인 경우도 있다. 그리고 기본적으로 [[정적 라이브러리]]로 빌드되므로 [[동적 라이브러리]]로 빌드할 경우 shared 옵션을 추가한다.
OpenSSL 컴파일(compile) & 빌드(build)
https://www.lesstif.com/pages/viewpage.action?pageId=6291508
[[정적 라이브러리]]([[static library]])는 루틴들과 외부 함수들 그리고 변수들의 집합으로서, [[컴파일 타임]]에 호출자에 의해 리졸브되며 컴파일러와 링커에 의해 [[목적 파일]]과 독립된 실행 파일을 생성하기 위해 대상 애플리케이션에 복사된다. 이 실행 파일과 이것을 컴파일링 하는 과정 모두 프로그램의 [[정적 빌드]]로 알려져 있다. 역사적으로, 라이브러리들은 단지 정적이었었다. 정적 라이브러리들은 다른 정적 라이브러리와 [[목적 파일]]들과 빌딩/링킹 시에 단일 [[실행 파일]]을 생성하기 위해 통합되거나 [[런타임]] 시에 메모리에 올라온 실행 파일의 [[주소 공간]](컴파일 타임/[[링크 타임]]에 결정되는 정적 메모리 오프셋)에 로드된다.
[[동적 라이브러리]](dynamic library]]) 는 소프트웨어의 일종으로, 말 그대로 동적 링크를 사용한 라이브러리이다. 여러 프로그램이 공통으로 필요로 하는 기능을 프로그램과는 분리하여 필요할 때에만 불러내어 쓸 수 있게 만들어 놓은 라이브러리를 말한다.
예를 들어 「마우스 포인터가 지금 화면 어디에 있는지를 조사」하는 기능은 다양한 프로그램([[응용 프로그램]])이 공통적으로 사용하려는 기능으로 여겨지므로, 그 부분만을 [[모듈]]화하고, 여러 프로그램들이 사용할 수 있도록 하는 것이 낫다. 이러한 경우 이 기능을 동적 라이브러리로서 만들어 놓는 경우가 많다.
[[마이크로소프트 윈도]]에서는 [[동적 링크 라이브러리]]라고 해서 확장자(extension)가 DLL인 파일로 제공되고 있으며, [[리눅스]]에선 /lib 디렉터리 밑의 .so 파일 등으로 구현된다.
개인이 자유 소프트웨어 등을 작성할 때에 만들기 쉽게 하기 위해서 작성해 무료로 제공되는 것도 있다. 동적 링크 라이브러리의 일종으로 [[런타임 라이브러리]]가 있다.
[[아이뮬]]([[iMule]])의 경우
./configure --prefix=/home/user/iMule-2.3.2.3
와 같이 ./configure 뒤에 옵션을 붙여 Makefile을 생성 후
make
를 입력하여 [[소스 코드]]를 [[컴파일]] 및 [[링크]]한다. 그 후
make install
을 입력하여 iMule을 설치한다. 마지막으로
./imule
을 입력하여 설치된 iMule을 실행시킨다.
[[토어]]([[Tor]])의 경우
./configure
로 Makefile을 생성 후
make
로 [[빌드]]하고
src/or/tor
로 실행시킨다. 토어는 설치 과정이 필요없고, 실행 파일만으로 작동한다. 위 [[명령어]]는 현재 [[디렉터리]]의 하위 디렉터리인 src [[폴더]]의 하위 폴더인 or 디렉터리의 tor라는 [[파일]]을 [[실행]]시키라는 의미이다.
./configure && make && src/or/tor
와 같이 &&을 사용하여 여러 명령어를 한번에 입력하여 순차적으로 실행시킬 수도 있다.




234

edits

Navigation menu